Foros del Web » Programación para mayores de 30 ;) » .NET »

Treeview

Estas en el tema de Treeview en el foro de .NET en Foros del Web. Hola atodos Estoy tratando de hacer un treeview en el cual pueda cargarle 2 omas datos a cada lelemento de la lista por ejemplo (lelemento ...
  #1 (permalink)  
Antiguo 26/03/2007, 13:47
 
Fecha de Ingreso: septiembre-2004
Mensajes: 179
Antigüedad: 19 años, 7 meses
Puntos: 0
Exclamación Treeview

Hola atodos


Estoy tratando de hacer un treeview en el cual pueda cargarle 2 omas datos a cada lelemento de la lista por ejemplo (lelemento y llava nombre y ID) y que este direccione a una pagina para despues en la otra pagina poder coger los datos cargar que seleccionaron

Gracias
  #2 (permalink)  
Antiguo 27/03/2007, 11:44
 
Fecha de Ingreso: octubre-2005
Mensajes: 180
Antigüedad: 18 años, 7 meses
Puntos: 0
Re: Treeview

Hola Marko!!!

No se si estas utilizando el control treeview que trae el vs.net 2005. O alguno que adquiriste.---

Hace dos años utilice el vb.net 2003 para un proyecto de escuela y me baje el webcontrol treeview desde el msdn y lo manejaba de esta forma:

Código:
Imports System.Data.SqlClient
Imports Microsoft.Web.UI.WebControls

Public Class WebForm1
    Inherits System.Web.UI.Page

    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load    

        'Introducir aquí el código de usuario para inicializar la página
        'crear la cadena de conexion a la base de datos Grupos, con el usuario sa sin contraseña

        Dim strConn As String = "server=.;database=Grupos;uid=sa;pwd=;"

        'crear el objeto de conexion 
        Dim objConn As New SqlConnection(strConn)
        'crear el objeto dataset para almacenar temporalmente los datos de la bd
        Dim objDS As New DataSet

        'crear el adaptador para que sea el que interprete entre la cadena de conexion y el dataset
        'se crea un adaptador para cada tabla
        Dim daraiz As New SqlDataAdapter("SELECT nombre_raiz,id_raiz,id_texto FROM tab_raiz", objConn)

        Dim dagrupo As New SqlDataAdapter("SELECT nombre_grupo,id_grupo,id_raiz,id_texto FROM tab_grupo", objConn)

        Dim danodo As New SqlDataAdapter("SELECT nombre_nodo, id_nodo, id_grupo, id_texto FROM tab_nodo", objConn)

        Dim dalibro As New SqlDataAdapter("SELECT nom_libro, id_libro, id_nodo, id_texto FROM tab_libro", objConn)

        Dim datitulo As New SqlDataAdapter("SELECT nom_titulo, id_titulo, id_libro, id_texto FROM tab_titulo", objConn)

        Dim daarticulo As New SqlDataAdapter("SELECT nombre_articulo, id_articulo, id_titulo,id_texto FROM tab_articulos", objConn)

        Dim dasubarticulo As New SqlDataAdapter("SELECT nombre_subarticulo, id_subarticulo, id_articulo,id_texto FROM tab_subarticulos", objConn)

        Dim daterminal As New SqlDataAdapter("SELECT nombre_terminal, id_terminal, id_subarticulo, id_texto FROM tab_terminal", objConn)
        'se llenan el dataset atraves de c/u de los  adaptadores
        ' creados anteriormente, tmb se le indica un indice, el cual no es necesariamente el nombre de la tabla a la cual se referencia

        daraiz.Fill(objDS, "dttab_raiz")

        dagrupo.Fill(objDS, "dttab_grupo")

        danodo.Fill(objDS, "dttab_nodo")

        dalibro.Fill(objDS, "dttab_libro")

        datitulo.Fill(objDS, "dttab_titulo")

        daarticulo.Fill(objDS, "dttab_articulos")

        dasubarticulo.Fill(objDS, "dttab_subarticulos")

        daterminal.Fill(objDS, "dttab_terminal")
        ' se cierra la conexion
        objConn.Close()
        'se crean las relaciones entre las tablas
        'es decir entre la tabla que contiene al nodo padre y al hijo
        objDS.Relations.Add("RaizToGrupo", _
                    objDS.Tables("dttab_raiz").Columns("id_raiz"), _
                    objDS.Tables("dttab_grupo").Columns("id_raiz"))

        objDS.Relations.Add("GrupoToNodo", _
            objDS.Tables("dttab_grupo").Columns("id_grupo"), _
            objDS.Tables("dttab_nodo").Columns("id_grupo"))

        objDS.Relations.Add("NodoToLibro", _
                    objDS.Tables("dttab_nodo").Columns("id_nodo"), _
                    objDS.Tables("dttab_libro").Columns("id_nodo"))

        objDS.Relations.Add("LibroToTitulo", _
                            objDS.Tables("dttab_libro").Columns("id_libro"), _
                            objDS.Tables("dttab_titulo").Columns("id_libro"))

        objDS.Relations.Add("TituloToArticulo", _
                                    objDS.Tables("dttab_titulo").Columns("id_titulo"), _
                                    objDS.Tables("dttab_articulos").Columns("id_titulo"))

        objDS.Relations.Add("ArticuloToSubarticulo", _
                                        objDS.Tables("dttab_articulos").Columns("id_articulo"), _
                                        objDS.Tables("dttab_subarticulos").Columns("id_articulo"))

        objDS.Relations.Add("SubarticuloToTerminal", _
                                                objDS.Tables("dttab_subarticulos").Columns("id_subarticulo"), _
                                                objDS.Tables("dttab_terminal").Columns("id_subarticulo"))

        'se declaran las variables de tipo treenode para cada una de las relaciones
        Dim idtabla, nodetexto, nodeidtexto, noderaiz, nodegrupo, nodenodo, nodelibro, nodetitulo, nodearticulo, nodesubarticulo, nodeterminal As TreeNode
        'se dclaran variables de tipo datarow, las cuales nos sirven para hacer el llenado de los nodos hijos al padre
        'se declaran tantas variables como tablas que usaremos, en nuestro caso son 7
        Dim rowidtexto, rowraiz, rowgrupo, rownodo, rowlibro, rowtitulo, rowarticulo, rowsubarticulo, rowterminal As DataRow

        'se hace el llenado de el treeview desde la bd de sql atraves de las relaciones previamente establecidas
        'esto se logra atraves de ciclos for.
        'El numero de for = a numero de tablas 
        For Each rowraiz In objDS.Tables("dttab_raiz").Rows

            noderaiz = New TreeNode
            nodeidtexto = New TreeNode

            noderaiz.Text = rowraiz("nombre_raiz")

            noderaiz.ID = rowraiz("id_raiz")
            nodeidtexto.ID = rowraiz("id_texto")

            nodeidtexto.Target = "doc"
            If nodeidtexto.ID <> 10000 Then
                noderaiz.NavigateUrl = "http://192.100.1.8/treeviewenbd/contenido2.aspx?id=" + nodeidtexto.ID

            End If
            'noderaiz.ID = 2 Then
            'noderaiz.NavigateUrl = "http://192.100.1.8/principal/SECCIONES O ARTICULOS.aspx"

            TreeView1.Nodes.Add(noderaiz)
            For Each rowgrupo In rowraiz.GetChildRows("RaizToGrupo")

                nodegrupo = New TreeNode
                nodeidtexto = New TreeNode
                nodegrupo.Text = rowgrupo("nombre_grupo")

                nodegrupo.ID = rowgrupo("id_grupo")
                nodeidtexto.ID = rowgrupo("id_texto")
                noderaiz.Nodes.Add(nodegrupo)
                If nodeidtexto.ID <> 10000 Then
                    nodegrupo.NavigateUrl = "http://192.100.1.8/treeviewenbd/contenido2.aspx?id=" + nodeidtexto.ID

                End If
                For Each rownodo In rowgrupo.GetChildRows("GrupoToNodo")

                    nodenodo = New TreeNode
                    nodeidtexto = New TreeNode
                    nodenodo.Text = rownodo("nombre_nodo")

                    nodenodo.ID = rownodo("id_nodo")
                    nodeidtexto.ID = rownodo("id_texto")
                    nodegrupo.Nodes.Add(nodenodo)
                    If nodeidtexto.ID <> 10000 Then
                        nodenodo.NavigateUrl = "http://192.100.1.8/treeviewenbd/contenido2.aspx?id=" + nodeidtexto.ID

                    End If

                    For Each rowlibro In rownodo.GetChildRows("NodoToLibro")

                        nodelibro = New TreeNode
                        nodeidtexto = New TreeNode
                        nodelibro.Text = rowlibro("nom_libro")

                        nodelibro.ID = rowlibro("id_libro")
                        nodeidtexto.ID = rowlibro("id_texto")
                        nodenodo.Nodes.Add(nodelibro)
                        If nodeidtexto.ID <> 10000 Then
                            nodelibro.NavigateUrl = "http://192.100.1.8/treeviewenbd/contenido2.aspx?id=" + nodeidtexto.ID

                        End If
                        For Each rowtitulo In rowlibro.GetChildRows("LibroToTitulo")

                            nodetitulo = New TreeNode
                            nodeidtexto = New TreeNode
                            nodetitulo.Text = rowtitulo("nom_titulo")

                            nodetitulo.ID = rowtitulo("id_titulo")
                            nodeidtexto.ID = rowtitulo("id_texto")
                            nodelibro.Nodes.Add(nodetitulo)
                            If nodeidtexto.ID <> 10000 Then
                                nodetitulo.NavigateUrl = "http://192.100.1.8/treeviewenbd/contenido2.aspx?id=" + nodeidtexto.ID

                            End If
                                                                End Sub

End Class
Ahora manejo un treeview que distribuye una compañia de nombre softcomplex y es mas sencillo que el controweb treeview que manejaba anteriormente; aunque he leido que el nuevo treeview que viene en el vs.net 2005 es mas versatil.------

Espero y te sirva el ejemplo de codigo que te puse(por problema de espacio no puse todo).--- Y suerte.---

Bitss---Miguel--in---
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:05.