大家一起来探讨探讨ASP.Net里面功能强大并且有源代码的TreeView控件啊。

解决方案 »

  1.   

    这是我收藏的一篇文章 Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            '在此处放置初始化页的用户代码        If Not IsPostBack Then
                Dim ds As New DataSet
                Dim CN As New SqlConnection
                '初始化连接字符串()
                CN.ConnectionString = mysqlDB
                CN.Open()
                Dim adp As SqlDataAdapter = New SqlDataAdapter("select * from tbTree", CN)
                adp.Fill(ds)
                Me.ViewState("ds") = ds
                ' 调用递归函数(, 完成树形结构的生成)
                AddTree(0, Nothing)
            End If    End Sub    Private Sub AddTree(ByVal ParentID As Integer, ByVal pNode As TreeNode)        Dim ds As DataSet
            ds = Me.ViewState("ds")        Dim dvTree As New DataView
            dvTree = New DataView(ds.Tables(0))
            '过滤ParentID,得到当前的所有子节点
            dvTree.RowFilter = "PARENTID = " + ParentID.ToString        Dim Row As DataRowView        For Each Row In dvTree
                Dim Node As New TreeNode
                If pNode Is Nothing Then  '判断是否根节点
                    '添加根节点                '  Node.Text = Row("ConText").ToString()
                    Node.ID = Row("ID")                Node.Text = "<A target='mainzu' href='999.aspx?id=" & Row("ID") & "&ParentID=" & Row("parentID") & "'>" & Row("ConText").ToString() & "</A>"                TreeView1.Nodes.Add(Node)                Node.Expanded = True
                    Node.CheckBox = True                '再次递归                AddTree(Int32.Parse(Row("ID").ToString()), Node)            Else                '&#768;添加当前节点的子节点
                    ' Node.Text = Row("ConText").ToString()
                    ' Node.Text = "<A target='mainzu'  href='999.aspx?id=" & Row("ID") & "&ParentID=" & Row("parentID") & "'>" & Row("ConText").ToString() & "</A>"                Node.Text = Row("context")
                    Node.ID = Row("ID")
                    pNode.Nodes.Add(Node)
                    Node.Expanded = True
                    Node.CheckBox = True                '再次递归
                    AddTree(Int32.Parse(Row("ID").ToString()), Node)                If Node.Checked = True Then
                        Response.Write(Node.CheckBox.ToString)
                    End If            End If        Next    End Sub    Private Sub Check(ByVal tn As TreeNode)        Dim t As TreeNode
            For Each t In tn.Nodes
                t.Checked = tn.Checked
                If t.Nodes.Count <> 0 Then
                    Check(t)
                End If
            Next t    End Sub 'Check    Private Sub TreeView1_Check1(ByVal sender As Object, ByVal e As Microsoft.Web.UI.WebControls.TreeViewClickEventArgs) Handles TreeView1.Check
            Check(TreeView1.GetNodeFromIndex(e.Node))
        End Sub    Private Sub FindCheckTrue(ByVal tn As TreeNode)
            Dim t As TreeNode
            For Each t In tn.Nodes
                If t.Checked = True Then
                    Dim clientID As String
                    clientID = t.ID '遍历整个树,得到checked=true的节点id
                    Response.Write(clientID & "<br>") '<-------显示ID
                End If
                If t.Nodes.Count <> 0 Then
                    FindCheckTrue(t)
                End If
            Next t
        End Sub 'FindCheckTrue    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim i As Int32
            For i = 0 To Me.TreeView1.Nodes.Count - 1
                If (Me.TreeView1.Nodes(i).Checked = True) Then
                    Response.Write(Me.TreeView1.Nodes(i).ID & "<br>") '<-------显示ID
                End If
                FindCheckTrue(Me.TreeView1.Nodes(i))
            Next
        End Sub
      

  2.   

    webctrl_client目录未复制到 Web 应用程序根目录,是最常见问.其它MSDN讲得很清楚了
      

  3.   

    http://www.powerupasp.net/asp.net/treeview/demo.aspx