实现 Asp.Net 2.0 的 TreeView 客户端个性化控制

文/mFrog  出处/博客园

ASP.NET 2.0 的 TreeView  控件功能虽说强大,但其客户端控制很逊色,本文将讲解 TreeView 的客户端实现原理,并实现两个个性化操作:
  

(1) 节点的全部打开和关闭;

TreeNode Expand(or Collapse) all

(2) 只打开一个节点(关闭其他兄弟节点)。

just one node expanded(when a client expand one node all other will collaps)

用记事本打开页面源代码,可以找到一下两个脚本引用:
Code
将"/WebUI/WebResource.axd?d=RAQeBcDUNuP9iuS8q3tNEw2&t=633300220640000000"拷到地址栏尾,下载脚本,并以 .js 命名,另一个同样操作。分析第二个脚本文件,可以看到TreeView的很多客户端函数,其中关键的一个 TreeView_ToggleNode 就是客户端点击时触发的事件。

  要想做个性化的操作,就得从 TreeView_ToggleNode 事件下手。我们无法更改.net封装好的脚本,只有“重写”。所谓的重写就是在原来的函数之后添加一个同名函数(因为js对于同名函数只调用最后一个)。



  TreeView_ToggleNode 的原函数:
Code
1. 节点的全部打开和关闭:
Code
2. 只打开一个节点(关闭其他兄弟节点)
Code


 感谢原创者的辛勤劳动,希望对您有所帮助,转载请注明原出处。
 您可能对 [Asp.Net] 的这些文章也感兴趣:

设计ASP.NET新闻管理系统  用ASP.NET设计高效邮件列表
关于“对路径***的访问被拒绝。”的解决方法  使aspx页面能接受HTML,asp的页面传送的文件
解读System.Web.UI.Page中关键方法ProcessRequestMain()  开发安全的ASP.NET应用程序
通过禁止使用xp_cmdShell提高安全  基于asp.net的webmenu的数据操作(4)
ASP.NET程序中用Repeater实现分页  ASP.NET WebForm Best Practice 之ViewState
C#调用oracle存储过程 最简单的实例  用Windows PowerShell来进行ASP.NET编程
.NET中使用datagrid实现的简单分页效果  服务器端微软ASP.NET AJAX控件开发技术
asp.net多频道网站架构实现方法  检测含有中文字符串的实际长度
缓存类的实现(C#)  使用 XSL 样式表无法查看 XML 输入
Friendly GridView Deletion Messages  实现一个自定义验证器控件[序]