我必须使用来自DB的以下数据构建树:
ID Name ManagerID
180002 john 180001
180003 Michel 180002
180005 smith 180003
john
|_Michel
|_ smith
具体来说,我需要创建一个ASP.NET TreeView控件。 TreeView的深度不固定。
答案 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控件吗?