关于treeview中checkbox选择的问题!!!!
该treeview中节点的checkbox为显示。
在windows.forms开发中运用AfterCheck事件实现了,父节点被checked后,子节点自动也被checked。
代码如下:
Private Sub CheckAllChildNodes(ByVal treeNode As TreeNode, ByVal nodeChecked As Boolean)
Dim node As TreeNode
For Each node In treeNode.Nodes
node.Checked = nodeChecked
If node.Nodes.Count > 0 Then
Me.CheckAllChildNodes(node, nodeChecked)
End If
Next node
End Sub
注treDrName为treeview名字
Private Sub node_AfterCheck(ByVal sender As Object, ByVal e As TreeViewEventArgs) Handles treDrName.AfterCheck
If e.Action <> TreeViewAction.Unknown Then
If e.Node.Nodes.Count > 0 Then
Me.CheckAllChildNodes(e.Node, e.Node.Checked)
End If
End If
End Sub
以上代码的效果是,选中父节点的checkbox被checked,子结点中的checkbox也同时被checked。
现在我在windows.web(asp.net)中开发,运用OnTreeNodeCheckChanged事件,想实现同样的功能
asp的代码如下
<asp:TreeView ID="treDrName" runat="server" ShowCheckBoxes="All" EnableTheming="True" OnTreeNodeCheckChanged ="TreeView_CheckChanged"></asp:TreeView>
vb中代码如下
Protected Sub treDrName_TreeNodeCheckChanged(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.TreeNodeEventArgs) Handles treDrName.TreeNodeCheckChanged
If e.Node.ChildNodes.Count > 0 Then
Me.CheckAllChildNodes(e.Node, e.Node.Checked)
End If
End Sub
#End Region
Private Sub CheckAllChildNodes(ByVal treeNode As TreeNode, ByVal nodeChecked As Boolean)
Dim node As TreeNode
For Each node In treeNode.ChildNodes
node.Checked = nodeChecked
If node.ChildNodes.Count > 0 Then
Me.CheckAllChildNodes(node, nodeChecked)
End If
Next node
End Sub
以上代码的效果是,选中父节点的checkbox被checked,子结点中的checkbox的状态没有变化,但是,点击一下父节点的名字,子节点的状态就被checked。
在asp开发中运用以上代码,没有实现和forms的同样效果,请教各位,有好方法吗,本人不胜感激!!!此地等候你的回答!!!谢谢!!!!