[Vb.net] Aiuto nella creazione di una ricorsione

seven.7

Nuovo Utente
8 Gen 2007
23
0
0
Buonasera a tutti,
ho un problema nella creazione di un ricorsione con treeview/treenode. Sicuramente sarà qualche riga di codice ma ci stò perdendo la testa... sarà la stanchezza forse ma stasera non connetto proprio :) Ad ogni modo ho un database mysql con una tabella contenente questi dati :

ID categoria ; ID_padre ; Nome
1 ; 0 ; Fiat
2; 0 ; Lancia
3; 1 ; Punto
4; 3 ; 1.3 Multijet

e così via...

A questo punto il risultato che vorrei visualizzare nel treeview

* Fiat
** Punto
***1.3 Multijet
* Lancia

Ho scritto questo codice ma mi fermo al 2° livello (punto)... 1.3 Multijet viene riportante sempre sotto Fiat e non sotto Punto.

Codice:
Private Sub ApplicazioniTreeNode(Optional ByVal idpadre As Integer = 0)
        For Each dr As DataGridViewRow In Me.DataGridView1.Rows
            If dr.Cells("id_padre").Value = idpadre Then
                Dim nodo As New TreeNode
                nodo.Tag = dr.Cells("id").Value
                nodo.Text = dr.Cells("nome").Value
                '
                If dr.Cells("id_padre").Value = 0 Then
                    Me.TreeView1.Nodes.Add(nodo.Tag, nodo.Text)
                Else
                    Dim index As Integer = RecuperaNodo(idpadre)
                    Me.TreeView1.Nodes(index).Nodes.Add(nodo.Tag, nodo.Text)
                End If
                ApplicazioniTreeNode(nodo.Tag)
            End If
        Next
    End Sub
Vorrei anche conservare sempre l'id del record nel treeview ma per questo penso che posso risolvere creando una classe da aggiungere come oggetto nel tag del treenode.

In ogni caso grazie mille.
 

Vins

Moderatore
Membro dello Staff
MOD
28 Lug 2009
238
19
0
Ciao,

i livelli hanno un numero massimo o sono variabili? Perchè se il numero di livelli è fisso (e sono pochi) potresti valutare la creazione di più tabelle.