已经无数次见到有人提出这个问题了。。。。。  
 
第一种。。。。。  
 
用.net控件TreeView而展开时不刷新的变通方法主要有以下步骤:  
 
1。在Page_Load中为你的TreeView添加以下属性,这句话为TreeView添加Click时的回发事件。  
 
TreeView1.Attributes["OnClick"]  =  @"javascript:  window.setTimeout('__doPostBack(\'TreeView1\',\'\')',  0,  'JavaScript')";  
 
2。在.aspx页面文件中添加一个隐藏的Button用来产生TreeView的回发事件:  
 
<INPUT  id="Button1"  style="DISPLAY:none;"  type="button"  value="Button"  name="Button1"  runat="server">  
 
           这个Button必须为Html控件,并将其转为在服务器端运行。  
           style="DISPLAY:none;"该句用来在页面隐藏Button。  
           在Visual.net的设计界面双击该Button产生以下事件:  
           private  void  Button1_ServerClick(object  sender,System.EventArgs  e)  
           {  
                         
           }  
           这里不用添加任何代码,目的是当服务器处理该页面并发送给客户端时产生下面客户端脚本:  
           <script  language="javascript">  
           <!--  
           function  __doPostBack(eventTarget,  eventArgument)  {  
                       var  theform  =  document.Form1;  
                       theform.__EVENTTARGET.value  =  eventTarget;  
                       theform.__EVENTARGUMENT.value  =  eventArgument;  
                       theform.submit();  
           }  
           //  -->  
           </script>  
           这段代码用于回应TreeView的Click事件。。。。。。。。。。。。。。。。。。。此代码不用手工添加。。。。。  
 
3。好。。。大功告成。。。为你的TreeView添加TreeView1_SelectedIndexChange事件:  
           在设计界面,TreeView上右键属性。。。事件。。找到SelectedIndexChange。。。双击。。在cs文件中产生。。  
           private  void  TreeView1_SelectedIndexChange(object  sender,  Microsoft.Web.UI.WebControls.TreeViewSelectEventArgs  e)  
           {  
                                     
           }  
           在里面添加测试代码。。。  
 
           Microsoft.Web.UI.WebControls.TreeNode  NewNode=TreeView1.GetNodeFromIndex(TreeView1.SelectedNodeIndex);  
           Response.Write(NewNode.GetNodeIndex());  
 
 
测试地址。。。。  
http://eu.webmatrixhosting.net/ganggang/tree.aspx。。。  
有点慢大家谅解。。。  
 
 
第二种。。。。。  
 
关于类似的TreeView展开不提交,点击才提交,我也有一个方法。。。此乃hgknight方法也。。。。  
 
http://eu.webmatrixhosting.net/hgknight/tree.aspx  
 
方法如下  
 
可以将autopostback设置成false;  
在body里添加  <body  οnlοad="initTree()">  
然后在PageLoad里写:  
string  strTreeName  =  "TreeView1";  
string  strRef  =  Page.GetPostBackEventReference(TreeView1);  
string  strScript  =  "<script  language=\"JavaScript\">  \n"  +  "<!--  \n"  +  "            function  initTree()  {  \n"  +"                        "  +  strTreeName  +  ".onSelectedIndexChange  =  function()  {  \n"  +    "if  (event.oldTreeNodeIndex  !=    
event.newTreeNodeIndex)  \n"  +  "this.queueEvent('onselectedindexchange',  event.oldTreeNodeIndex  +  ','  +  event.newTreeNodeIndex);  \n"  +    "window.setTimeout('"  +  strRef.Replace("'","\\'")    +  "',  0,  'JavaScript');  \n"  +    "                        }  \n"  +      "            }  \n"  +    "//  -->  \n"  +  "</script>";  
Page.RegisterClientScriptBlock("InitTree",strScript  );  
 
这样就只有你点击的节点更改的时候才提交!  
 
 
个人认为。。。。hgknight(江雨.net)的方法要更好一点。。。  
 
虽然原理相似。。。但我的用的是Click事件。。这导致。。。点击同一节点时也会回发页面。。。。虽然这时不会触发。。。。SelectedIndexChange事件。。。这一点需要改进。。。。。

转载于:https://www.cnblogs.com/Nina-piaoye/archive/2006/09/11/500922.html

Web控件TreeView展开无闪烁的两个解决方法相关推荐

  1. 添加RichEdit控件导致MFC对话框程序无法执行的解决方法

    解决办法: 在应用程序类(App类)中的InitInstance函数体内添加以下语句: AfxInitRichEdit();         对应1.0版本 如果有2.0版本需要添加如下 AfxIni ...

  2. UI控件问题和XCode编译警告和错误解决方法集锦 (持续更新ing)

    UI控件问题集锦 第一 图片无法在UIImageview上显示: 原因如下: 1.没有设置宽高(或者宽高为0) 2.位置不对 3.hidden=YES 4.没有添加到控制器的view上面 第二 一个U ...

  3. MATLAB GUI程序设计中ListBox控件在运行期间消失的原因及解决方法

    在运行期间,ListBox控件突然消失,同时给出如下错误提示: Warning: single-selection listbox control requires that Value be an ...

  4. Android Studio中Button等控件的Text属性英文默认大写的解决方法

    在 Android Studio 中 xml 里面添加一个 Button.EditText 等控件后,它的 Text总是会显示大写,即使你输入的字符串是小写也不行,控制字符串大小写的属性是androi ...

  5. 使用 TreeView IE Web 控件

    使用 TreeView IE Web 控件 摘要:了解 TreeView Web 控件,并学习如何在 ASP.NET Web 应用程序中使用 TreeView Web 控件.除了标准的 ASP.NET ...

  6. Web控件和HTML控件的不同之处

    在将ASP.Net的时候,讲到了Web控件和HTMl控件,在VS2012中的工具一栏中也有明显的分类,Web控件和Html控件,两者的不同之处在哪里呢? 第一:相识,相知 Html控件: 1. Htm ...

  7. 【VS开发】免费打工仔:一个完善的ActiveX Web控件教程

    作者 David Marcionek. 翻译 免费打工仔 这个教程可以帮助你快速开发一个ActiveX控件.其中将要讲解关于ActiveX开发的一些基础概念,诸如方法(method).属性(prope ...

  8. 免费打工仔:一个完善的ActiveX Web控件教程

    免费打工仔:一个完善的ActiveX Web控件教程 出自Ogre3D开放资源地带 跳转到: 导航, 搜索 原作者 David Marcionek. 翻译 免费打工仔 这个教程可以帮助你快速开发一个A ...

  9. 一个完善的ActiveX Web控件教程

    免费打工仔:一个完善的ActiveX Web控件教程 出自Ogre3D开放资源地带 跳转到:  导航,  搜索 原作者 David Marcionek. 翻译 免费打工仔 这个教程可以帮助你快速开发一 ...

最新文章

  1. c++ char数组初始化_c专题指针数组与指针的关联
  2. mybatis 中#和$的区别
  3. 线程和进程的对比之优缺点
  4. 【Python】function、module、Package及import导入方法
  5. MUI 图片上传、预览、删除重选等等实现
  6. mywebsite1
  7. matlab中的灰度直方图及imhist函数
  8. 微信小程序源码合集(免费)
  9. 注册表REG文件编写大全
  10. oracle 列名sql,SQL查询表名、列名、列属性-Oracle
  11. Java基础语法之变量、运算符、流程控制、数组和方法等基础语法
  12. 22.JS+jQuery
  13. Python——dat文件批量合并为同一个csv文件
  14. 程序员鄙视链至今还存在,你咋想不通呢?看完给你理清思绪
  15. 地图下载白嫖神器!你该怎么用好它
  16. 10_Mysql查询
  17. gprs实用技巧:gprs模块tcp连接稳定性测试
  18. h1283 linux内核,复苏老客 » 发布一个开博尔H1283双核固件
  19. 查找数组中的指定元素的位置--顺序查找与二分查找
  20. 如何把int数组中的相同元素,从数组中删除。

热门文章

  1. Linux C 服务器端这条线怎么走?
  2. C语言指针变量的运算
  3. 如何优雅地检测类型/表达式有效性?
  4. python初学者用什么开发环境_python初学者用什么开发环境
  5. python求阶乘之和_python计算阶乘前n项和
  6. html网页设如何置访问密码,利用JS给单页html加上简单访问密码,需要密码才能访问!...
  7. Linux文件系统为,浅析Linux文件系统
  8. C/C++头文件与变量的声明和定义
  9. 光纤收发器性能级别及价格介绍
  10. 21秋期末考试工商企业文化10631k2