绑定数据到TreeView

前一阵子用到绑定TreeView的函数。(.net 2.0)
数据表中主要用到三个字段:tree_id, tree_name,follow_id
其中follow_id是上级id(可能名字取得不太贴切)  把代码存在这里,以便将来查看
以下是示例过程:

Imports Microsoft.VisualBasic
Imports System.Data.SqlClient
Imports System.Data
Imports System.Collections
Imports System
Imports System.Configuration
Imports System.IO

Public Class knowledge
    
Dim dbobj As New ConnSqlServer.db
先得到要用到的 DataSet
 Public Function Getknowledge() As DataSet
        
Dim ds As New DataSet()
        
Dim sql As String = "select * from iKnowledge_tree"
        dbobj.ReturnDataSet(sql, ds)
        
Return ds
    
End Function
下面是两个绑定函数
 '绑定树
    Public Sub BindTreeView(ByRef treeview As TreeView, ByVal isExpanded As BooleanByVal selectData As String)
        treeview.Nodes.Clear()
        
Dim dataTable As New DataTable
        
Dim ds As New DataSet()
        ds 
= Me.Getknowledge()
        dataTable 
= ds.Tables(0)
        
Dim rowList As DataRow() = dataTable.Select("follow_id='-1'")
        
If (rowList.Length <= 0Then
            
Return
        
End If
        
Dim rootNode As New TreeNode()
        rootNode.Text 
= rowList(0)("tree_name").ToString()
        rootNode.Value 
= rowList(0)("tree_id").ToString()
        rootNode.Expanded 
= isExpanded
        rootNode.Selected 
= True
        treeview.Nodes.Add(rootNode)
        
'调用创建子节点的函数
        CreateChildNode(rootNode, dataTable, isExpanded, selectData)

    
End Sub
 '递归创建子节点
    Public Sub CreateChildNode(ByVal parentNode As TreeNode, ByVal dataTable As DataTable, ByVal isExpanded As BooleanByVal selectData As String)

        
Dim rowList As DataRow() = dataTable.Select("follow_id= '" + parentNode.Value + "'")
        
Dim row As DataRow
        
For Each row In rowList
            
Dim node As New TreeNode()
            node.Text 
= row("tree_name").ToString()
            node.Value 
= row("tree_id").ToString()
            node.Expanded 
= isExpanded
            
If (node.Value = selectData) Then
                node.Selected 
= True
            
End If
            parentNode.ChildNodes.Add(node)
            CreateChildNode(node, dataTable, isExpanded, selectData)
        
Next
    
End Sub
End Class
调用的时候下面这样就可以了
Dim knowledge As New knowledge
 Sub BindTree()
        knowledge.BindTreeView(
Me.TreeView1, True"-1")
    
End Sub

posted @ 2007-07-21 10:05  浪子剑客  阅读(439)  评论(1编辑  收藏  举报