动态构建TreeView

时间:2009-07-14 11:28:39

标签: asp.net treeview

我必须使用来自DB的以下数据构建树:

ID          Name     ManagerID
180002      john     180001
180003      Michel   180002
180005      smith    180003

john
 |_Michel
    |_ smith

具体来说,我需要创建一个ASP.NET TreeView控件。 TreeView的深度不固定。

2 个答案:

答案 0 :(得分:0)

您没有指定是使用C#还是VB,但方法是相同的。

首先为每个顶级个人创建一个TreeNode(没有ManagerID的人,或者使用指示顶级的特殊ManagerID代码)。

然后,递归地,对于向当前管理器报告的每个人,创建一个新的TreeNode并将其添加为当前管理器的子节点。找到向他报告的每个人,并将此功能应用于他们。当没有人向当前人报告时停止。

因此,假设您有一个包含此表详细信息的DataSet,您可以执行以下操作(VB示例):

Sub PopulateTreeNode(
  CurrentNode As TreeNode,
  CurrentManagerID As String,
  Table As DataTable
) As TreeNode
  For Each Row As DataRow In _ 
  DataTable.Select("ManagerID = '" & CurrentManagerID & "'")
    Dim CurrentUser As String = Row("ID").ToString()
    Dim Node As New TreeNode(CurrentUser)
    PopulateTreeNode(Node, CurrentUser, Table)
    CurrentNode.Nodes.Add(Node)
  Next
End Sub

答案 1 :(得分:0)

您的意思是使用分层数据填充TreeView控件吗?

您可以查看this article on ASPAlliancethis on CodeProject