您的位置:首页 > 编程语言

[原创]18行代码实现无限级填充TreeView的例子与函数

2007-09-01 16:16 351 查看




做的时候在网站找了N个小时的代码也没找见比较短小的代码,索性自已写了一个,功能是可以无限级分类填充TreeView.

'//调用时使用LoadTree(TreeView1.Nodes,0) 参数1表示当前的节目级别.0表示为根节点,参数2为父分类ID,0表示顶级分类,

'//以下是代码,VB.NET 2.0,2.0和1.1基本上是一致的,在语法上没多大的区别.
'//从数据库中读取分类信息加载分类到列表框中.
Private Sub loadTree(ByVal Nodes As TreeNodeCollection, ByVal lbID As Integer)
'获得各级分类
Dim sNode As Integer = -1
Dim CmdText As String = "Select * From sys_lb where FolderID=" + lbID.ToString + " Order by ID"
Dim Ds As DataSet = New DataSet
Dim Dr As SqlClient.SqlDataAdapter = New SqlClient.SqlDataAdapter(CmdText, SqlConn)
Dr.Fill(Ds)
If Ds.Tables(0).Rows.Count > 0 Then
'加载节点
Dim I As Integer
For I = 0 To Ds.Tables(0).Rows.Count - 1
sNode += 1
Dim mylbName As String = Ds.Tables(0).Rows(I).Item("lbName").ToString
Dim mylbID As String = Ds.Tables(0).Rows(I).Item("ID").ToString
Nodes.Add(mylbID, mylbName)
'读取当前节点的子节点加载
loadTree(Nodes(sNode).Nodes, CInt(mylbID))
Next
End If
TreeView1.ExpandAll()
End Sub

'//Sys_lb表的结构:
CREATE TABLE [dbo].[sys_lb] (
[ID] [int] IDENTITY (1, 1) NOT NULL ,
[lbName] [varchar] (30) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[lbInfo] [varchar] (120) COLLATE Chinese_PRC_CI_AS NULL ,
[folderID] [int] NOT NULL
) ON [PRIMARY]
GO

'//ID为自动编号Int类型,LbName为分类名称,LbInfo为分类说明,该列您可以修改或是删除它.FolderID存储父级分类ID
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: