Monday, November 21, 2011

Cómo cargar Un treeview windows form

Treeview. There is no treenode value property. VB.NET (System.Windows.Forms)

No es cierto que cuando poblamos un treeview de ASP.NET, utilizamos las propiedades Node.Text y Node.Value El text es lo que se muestra y el value es para trabajar por abajo, mas que todo para los queries es útil.

Pero resulta que el TreeView de los Controles Windows no tiene esa propiedad. Y si queremos hacer un insert a una x tabla a partir del treeview, estariamos en un conflicto.

Yo suelo utilizar la famosa property "tag". Esta propiedad recibe un objeto. Yo la trabajo así:

Public Sub proCargarArbol()
        Dim idServicio As Integer = Me.lsvServicios.SelectedItem.Text
        Dim objRutas As New clsTarifaServicio
        Dim dtServicio2 As DataTable = objRutas.getServicio2
        TreeView1.BeginUpdate()
        TreeView1.Nodes.Clear()
        Dim index As Integer = 0
        For Each dr As DataRow In dtServicio2.Rows
            Dim NewNode As New TreeNode
            NewNode.Text = dr(1).ToString
            NewNode.Tag = dr
            Me.TreeView1.Nodes.Add(NewNode)
            Dim dtRutas As DataTable = objRutas.getRutas(idServicio, dr(0))
            For Each row As DataRow In dtRutas.Rows
                Dim NewNodeSon As New TreeNode
                NewNodeSon.Text = row(2).ToString + " - " + row(4).ToString
                NewNodeSon.Tag = row
                Me.TreeView1.Nodes(index).Nodes.Add(NewNodeSon)
            Next
            index = index + 1
        Next
        TreeView1.EndUpdate()
    End Sub

Checkan? Al tag le estoy mandando una fila con los datos importantes de ese item que lo cargué en el árbol. Y bueno, cuando necesiten extraer esa info, solo le hacen un for each al árbol, se crean un datarow y se lo asigan el tag.

HaPPy Coding =)

No comments:

Post a Comment