Llenar Treeview Dinámicamente

Llenar un Treeview obteniendo el listado desde una base de datos... pueden hacerlo de la siguiente manera:



Public Function GetNodos(ByVal idx As Integer) As List(Of Nodos)
        Dim Dbx As New NodosDataContext

        Dim Listado = (From Nodos In Dbx.Nodos _
                       Order By Nodos.IdPadre _
                       Select tabla).ToList

        Dbx.Dispose()

        Return Listado
    End Function




Private Sub LlenaArbol()
        TreeView.Nodes.Clear()
        Dim Nodos = GetNodos()

        Dim NOdo1 As New TreeNode
        NOdo1.Text = Datos(0).Nombre
        NOdo1.Value = Datos(0).Id
        TreeView.Nodes.Add(NOdo1)

        llenarsubNodos(NOdo1, Datos) 
        TreeView.ExpandAll()

    End Sub



Private Sub llenarsubNodos(ByVal pad As TreeNode, ByVal listax As List(Of ViewArbol))

        Dim Hijos As List(Of ViewArbol)
        Hijos = (From lis In listax
                 Where lis.IdPadre = pad.Value
                 Select lis).ToList

        For Each Recorre In Hijos

            Dim nodo As New TreeNode()

            nodo.Text = Recorre.Nombre
            nodo.Value = Recorre.Id

            pad.ChildNodes.Add(nodo)

            llenarsubNodos(nodo, listax)
        Next

    End Sub


Recuerden que el Nodo Principal o nodo raíz, no tiene un nodo padre, y el valor en la base de datos sería NULL.


Cualquier duda o sugerencia, sea bienvenida

Comentarios

Anónimo dijo…
el valor Datos(0) de donde lo obtienes..
el valor "0" es el que no tiene asignado nodo padre... o valor "NULL"