Peupler un TreeView dans le CodeBehind
Salut à tous.
Je me lance sur un truc que je connais pas encore : le TreeView.
J'ai regardé une doc là : http://quickstarts.asp.net/QuickStar.../treeview.aspx
Et plus particulièrement celui là : http://quickstarts.asp.net/QuickStar...lang=VB+Source
Et celui là : http://quickstarts.asp.net/QuickStar...TreeView10.src
Alors le truc c'est ça marche bien, mais ce n'est pas tout à fait ce que je veux. Je voudrais un mélange des deux.
En gros, je veux présenter des produits par catégorie. J'ai donc une table de catégorie avec un système de catégorie parent. Je ne connais pas au préalable la profondeur des catégories, elles peuvent sur deux étages ou sur 5 et pas forcément toute sur le même nombre d'étages.
L'idée c'est de pouvoir peupler les noueds au fur et à mesure qu'il trouve des catégories enfants.
Et là je bloque sur un truc tout couillion : je comprend pas comment peupleur le noeud de deuixème étage. Donc, encore moins ceux d'en dessous.
Voici mon code actuel :
Dans le Init de ma page :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
Dim lstCateg As New TreeView
Dim lstCategNode As New TreeNode
With lstCategNode
.Text = "Catégorie"
.Value = 0
.SelectAction = TreeNodeSelectAction.Expand
.PopulateOnDemand = True
End With
With lstCateg
AddHandler lstCateg.TreeNodePopulate, AddressOf PopulateNode
.ExpandDepth = 1
.ID = "lstCateg"
.Nodes.Add(lstCategNode)
End With |
Aprés j'ajoute le lstCateg dans une Cellule d'une Table, tout simplement
Et la sub de population :
Code:
1 2 3 4 5 6 7 8 9
|
Sub PopulateNode(ByVal source As Object, ByVal e As TreeNodeEventArgs)
Dim dt As DataTable = New DManager("DataDev").RetournerTable("EXEC dbo.BOUTIQUE_ListeCategorie " & e.Node.Value)
For Each dr As DataRow In dt.Rows
Dim newNode As New TreeNode(dr.Item("NomCategorie"), dr.Item("IdCategorieProduit"))
e.Node.ChildNodes.Add(newNode)
Next
End Sub |
Il ne me sort que mes catégories de premier niveau et je comprend pas ce que dois faire pour qu'il aille me chercher les autres pour chaque noeud rencontré.
Pouvez m'aider ?