Vous n'avez pas spécifié si vous utilisiez C# ou VB, mais l'approche est la même dans les deux cas.
Vous commencez par créer un TreeNode pour chaque individu de niveau supérieur (ceux qui n'ont pas d'ID de gestionnaire ou avec un code ManagerID spécial qui indique le niveau supérieur).
Puis, récursivement, pour chaque individu qui rapporte au gestionnaire actuel, créez un nouveau TreeNode et ajoutez-le en tant qu'enfant pour le gestionnaire actuel. Trouvez tous ceux qui relèvent de lui et appliquez-leur cette fonction. Arrêtez quand personne ne se rapporte à la personne actuelle.
Donc, en supposant que vous avez un DataSet avec les détails de cette table, vous feriez quelque chose comme ceci (exemple 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
Merci, il fonctionne est là pour éviter la publication de sorte que le noeud soit sélectionné, mais il ne publiera pas sur le serveur – muthu
Vous pouvez envelopper dans un UpdatePanel, ou vous pouvez définir la propriété AutoPostBack de l'arbre et son nœuds à faux. – Welbog