我最近在学习treeview的中checkbox,希望实现以下功能:
1、 改变一个节点的checkbox的值,他的子节点的checkbox的值也随之改变;
2、如果设置一个节点的checkbox的值为true,他的父节点的值也应是true;
我到网上查了一下,基本都是基于客户端JAVAScript实现的,都比较复杂、麻烦,其实利用AJAX技术后在服务器端实现也非常方便。
前台aspx代码非常简单,代码不再贴出,后代码如下:
1

Protected Sub TreeView1_TreeNodeCheckChanged()Sub TreeView1_TreeNodeCheckChanged(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.TreeNodeEventArgs) Handles TreeView1.TreeNodeCheckChanged2
Dim dt As TreeNode3
dt = TreeView1.SelectedNode4
nodecheck(dt, dt.Checked)5
If dt.Checked = True Then6
pnodecheck(dt, dt.Checked)7
End If8

9
End Sub10

11

Sub nodecheck()Sub nodecheck(ByVal dnode As TreeNode, ByVal tf As Boolean)12
Dim cdt As TreeNode13
For Each cdt In dnode.ChildNodes14
cdt.Checked = dnode.Checked15
nodecheck(cdt, tf)16
Next17
End Sub18

Sub pnodecheck()Sub pnodecheck(ByVal dnode As TreeNode, ByVal tf As Boolean)19
Dim cdt As TreeNode20

21
If dnode.Depth > 0 Then22
cdt = dnode.Parent23
cdt.Checked = dnode.Checked24
pnodecheck(cdt, tf)25
End If26
End Sub不过有个问题,就是改变checkbox事件不激活,只有单击treeview项目才激情事件!
不知道为什么?
