最近有一个项目要做到用树形结构来控制权限, 要做到以下三条

  1. 当选择根节点时所有的子节点都要被选择
  2. 当选择子节点时相应的根节点也要被选择
  3. 当所有子节点取消选择时根节点也要取消选择。

  树形控件用的是asp.net 2.0自带的treeview控件,如何控制它的checkbox一点头绪也没有,google上找了找,发现这个问题还是比较普遍的,终于找了一篇文章http://itrust.cnblogs.com/archive/2006/04/03/365439.html,照上面做了一下,但是出错。仔细看了一下,发现回复中有一段代码可以使用,但是只能实现第一条,另外两条做不到。

  看了免费的午餐还是不好吃的,还是要自己动手,分析了一下这段代码,又结合上面的文章看了一下,把代码修改了一下,终于可以全部做到了。

  代码如下:

asp.net 2.0 中 TreeView控件中的checkbox客户端操作function OnTreeNodeChecked() 
}

  把上面一段存成treeview.js文件,在页面里引用,然后设置treeview控件的"onclick=OnTreeNodeChecked()",或者直接在Page_Load里加上“TreeView1.Attributes.Add("OnClick", "OnTreeNodeChecked()");”就可以了,留一个简单例子


  另外js里的GetParentByTagName(element, tagName)函数是treeview中自带的,原先的函数 WebForm_GetParentByTagName(element, tagName) ,写在这里是为了让自己用的时候不糊涂,大家在使用的时候可以把js里“var div = GetParentByTagName(ele,'DIV');”这一行换成“var div = WebForm_GetParentByTagName(ele,'DIV');”然后去掉GetParentByTagName(element, tagName)函数,效果是一样的。




相关文章: