如何获取在树视图 vb.net 中选中的子节点列表?
How can I get a list of childnodes checked in a treeview vb.net?
[![在此处输入图片描述][1]][1]我的树视图的设计视图:
<asp:TreeView ID="TreeView1" ShowExpandCollapse="true" runat="server" ShowCheckBoxes="Leaf"
ViewStateMode="Enabled">
</asp:TreeView>
代码:
Private Sub MyProject_Load(sender As Object, e As EventArgs) Handles Me.Load
' MY DATATABLE WITH THE VALUES:
Dim dt as datatable = mymethodtoreadvaluesfrombd()
TreeView1.Nodes.Clear()
Dim node As TreeNode
Dim subNode As TreeNode
For Each row As DataRow In dt.Rows
node = Searchnode(row.Item(2).ToString(), TreeView1)
If node IsNot Nothing Then
subNode = New TreeNode(row.Item(3).ToString())
subNode.ShowCheckBox = True
node.ChildNodes.Add(subNode)
Else
node = New TreeNode(row.Item(2).ToString())
subNode = New TreeNode(row.Item(3).ToString())
node.ChildNodes.Add(subNode)
TreeView1.Nodes.Add(node)
End If
Next
End Sub
Private Function Searchnode(ByVal nodetext As String, ByVal trv As TreeView) As TreeNode
For Each node As TreeNode In trv.Nodes
If node.Text = nodetext Then
Return node
End If
Next
End Function
我有一个按钮,当我单击它时,我需要读取在我的树视图中选中的子节点。
我找不到我尝试过很多代码的方法,有人可以建议我吗?谢谢。
您可以执行第二个 for...each
循环以遍历子节点:
For Each Parentnode as TreeNode in TreeVeiw1.Nodes
For Each Childnode as Treenode in Parentnode.Nodes
If Childnode.checked Then
End If
Next
Next
我对 ID(见下面的评论)的建议是使用 Childnode.Tag
,大多数控件包括 .Tag
,您可以在其中存储数据。
我发现我的代码有问题,
问题是当我点击按钮时有一个自动回传事件使树视图复选框被删除,所以我把它放在加载中,直接转到按钮操作点击:
Private Sub MyProject_Load(sender As Object, e As EventArgs) Handles Me.Load
If not is postback then
' create the treeview
end if
End Sub
[![在此处输入图片描述][1]][1]我的树视图的设计视图:
<asp:TreeView ID="TreeView1" ShowExpandCollapse="true" runat="server" ShowCheckBoxes="Leaf"
ViewStateMode="Enabled">
</asp:TreeView>
代码:
Private Sub MyProject_Load(sender As Object, e As EventArgs) Handles Me.Load
' MY DATATABLE WITH THE VALUES:
Dim dt as datatable = mymethodtoreadvaluesfrombd()
TreeView1.Nodes.Clear()
Dim node As TreeNode
Dim subNode As TreeNode
For Each row As DataRow In dt.Rows
node = Searchnode(row.Item(2).ToString(), TreeView1)
If node IsNot Nothing Then
subNode = New TreeNode(row.Item(3).ToString())
subNode.ShowCheckBox = True
node.ChildNodes.Add(subNode)
Else
node = New TreeNode(row.Item(2).ToString())
subNode = New TreeNode(row.Item(3).ToString())
node.ChildNodes.Add(subNode)
TreeView1.Nodes.Add(node)
End If
Next
End Sub
Private Function Searchnode(ByVal nodetext As String, ByVal trv As TreeView) As TreeNode
For Each node As TreeNode In trv.Nodes
If node.Text = nodetext Then
Return node
End If
Next
End Function
我有一个按钮,当我单击它时,我需要读取在我的树视图中选中的子节点。 我找不到我尝试过很多代码的方法,有人可以建议我吗?谢谢。
您可以执行第二个 for...each
循环以遍历子节点:
For Each Parentnode as TreeNode in TreeVeiw1.Nodes
For Each Childnode as Treenode in Parentnode.Nodes
If Childnode.checked Then
End If
Next
Next
我对 ID(见下面的评论)的建议是使用 Childnode.Tag
,大多数控件包括 .Tag
,您可以在其中存储数据。
我发现我的代码有问题,
问题是当我点击按钮时有一个自动回传事件使树视图复选框被删除,所以我把它放在加载中,直接转到按钮操作点击:
Private Sub MyProject_Load(sender As Object, e As EventArgs) Handles Me.Load
If not is postback then
' create the treeview
end if
End Sub