【问题标题】:How can I get a list of childnodes checked in a treeview vb.net?如何获取在 treeview vb.net 中检查的子节点列表?
【发布时间】:2016-03-15 19:54:39
【问题描述】:

[![在此处输入图像描述][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

我有一个按钮,当我点击它时,我需要阅读子节点检查我的树视图。 我找不到尝试许多代码的方式,有人可以建议我吗?谢谢。

【问题讨论】:

    标签: asp.net vb.net checkbox webforms treeview


    【解决方案1】:

    您可以执行第二个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,您可以在其中存储数据。

    【讨论】:

    • 我怎样才能从 treeview 中获取选中的子节点?,谢谢
    • 我有另一个问题,当我创建树视图时,我为子节点分配了文本值,所以当我得到检查元素的列表时,我从子节点获取文本名称,我的问题是,如何将 ID 也保存到子节点中,以便在更改后保存到数据库中?谢谢
    【解决方案2】:

    我在我的代码中看到了问题,

    问题是,当我单击按钮时,有一个自动回发事件导致树视图复选框被删除,所以我把它放在负载中,直接进入按钮操作单击:

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-09-15
      • 1970-01-01
      • 1970-01-01
      • 2011-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多