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 '判断是否根节点
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