Web控件TreeView展开无闪烁的一个解决方法

转载 2006年06月06日 13:35:00

已经无数次见到有人提出这个问题了。。。。。  
   
  用.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());  
   
  。。。。。。。。OK。。。。。。。。。。。。。。。。  
   
   
  测试地址。。。。http://eu.webmatrixhosting.net/ganggang/tree.aspx。。。有点慢大家谅解。。。  
   
  有什么问题请提出。。。。。。呵呵。。。。。  

------------------------------------------------------------------------------------------------------------

关于类似的TreeView展开不提交,点击才提交,我也有一个方法  
  http://eu.webmatrixhosting.net/hgknight/tree.aspx  
   
  方法如下  
   
  可以将autopostback设置成false;  
  在body里添加   <body   onload="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   );  
  这样就只有你点击的节点更改的时候才提交!  
   
  to   monkey_zeng(未来报告)  
  顺便说一下,慢是由于服务器的问题,你可以在本机测试一下这个方法:)

 

相关文章推荐

如何避免treeview控件闪烁刷新

 http://hotmy.com/cms/blogs/more.asp?name=chrischen&id=129             treeview样式。 如何避免treeview控件闪烁刷...
  • anya
  • anya
  • 2006年08月04日 15:15
  • 2663

使用 TreeView IE Web 控件

Scott Mitchell2003 年 7 月适用于:Microsoft® ASP.NET摘要:了解 TreeView Web 控件,并学习如何在 ASP.NET Web 应用程序中使用 TreeV...
  • jelink
  • jelink
  • 2006年09月28日 14:36
  • 1101

查看服务时提示“一个或多个ActiveX控件无法显示”的解决方法

最近,查看服务(services.msc)时,默认使用扩展视图时会提示一个或多个ActiveX控件无法显示,原因可能是下列其中之一: 1)当前安全设置禁止运行此页面中的ActiveX控件,或 ...
  • jackiej
  • jackiej
  • 2011年04月22日 23:58
  • 1138

C#控件的闪烁问题解决方法总结

转自:http://wenku.baidu.com/link?url=ni-AYtFVz07_EsDIhNWiLWknjXyHdLO0RJ64WQ5nidp_jEdXM3c96LMiHVBrcniU_...

eclipse maven创建一个maven web项目,以及创建过程中的报错解决方法

eclipse maven创建一个maven web项目,以及创建过程中的报错解决方法
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Web控件TreeView展开无闪烁的一个解决方法
举报原因:
原因补充:

(最多只允许输入30个字)