none
Quiero cargar dinamicamente mi menu RRS feed

  • Pregunta

  •  

    Mucho gusto, el problema que tengo es que quiero cargar mi menu de forma dinamica consumiendo un documento xml desde mi base de datos, hasta ahora no lo puedo hacer, es el principal problema, por que quiero cargar mi menu por codigo y no por asistente..espero que me puedan ayudar.

    sábado, 16 de junio de 2007 1:22

Todas las respuestas

  • Hola mira eso es relativamente fácil yo ya lo hice con un menú guardado en la data y con treeview



    te mando el codigo para que lo veas es facil




    'Traemos los datos de de datos.
                            Dim dtMenuItems As New DataTable

                            'Conexion a la base de datos donde esta nuestra tabla Menú.
                            Dim cnDatos As New SqlConnection("Data Source=kolob;Initial Catalog=BDMUSSAFINAL;User ID=sa; password=sqlserver;")

                            'se invoca al procedimiento almacenado
                            Dim daMenu As New SqlDataAdapter("ObtenerMenuAdmin", cnDatos)
                            daMenu.SelectCommand.CommandType = CommandType.StoredProcedure

                            'llenamos el datatable
                            daMenu.Fill(dtMenuItems)

                            'recorremos el datatable para agregar los elementos de que estaran en la cabecera del menú.
                            For Each drMenuItem As Data.DataRow In dtMenuItems.Rows

                                'esta condicion indica q son elementos padre.
                                If drMenuItem("ID").Equals(drMenuItem("PADREID")) Then

                                    Dim mnuMenuItem1 As New TreeNode

                                    mnuMenuItem1.Value = drMenuItem("ID").ToString
                                    mnuMenuItem1.Text = drMenuItem("NOMBRE").ToString
                                    mnuMenuItem1.NavigateUrl = drMenuItem("URL").ToString

                                    'agregamos el Ítem al menú
                                    Tvmenu2.Nodes.Add(mnuMenuItem1)
                                    'hacemos un llamado al metodo recursivo encargado de generar el árbol del menú.
                                    AddMenuItem1(mnuMenuItem1, dtMenuItems)
                                End If
                            Next


    Private Sub AddMenuItem1(ByRef mnuMenuItem As TreeNode, ByVal dtMenuItems As Data.DataTable)

            'recorremos cada elemento del datatable para poder determinar cuales son elementos hijos
            'del menuitem dado pasado como parametro ByRef.
            For Each drMenuItem As Data.DataRow In dtMenuItems.Rows
                If drMenuItem("PADREID").ToString.Equals(mnuMenuItem.Value) AndAlso _
                Not drMenuItem("ID").Equals(drMenuItem("PADREID")) Then
                    Dim mnuNewMenuItem As New TreeNode
                    mnuNewMenuItem.Value = drMenuItem("ID").ToString
                    mnuNewMenuItem.Text = drMenuItem("NOMBRE").ToString
                    mnuNewMenuItem.Value = drMenuItem("URL").ToString

                    'Agregamos el Nuevo MenuItem al MenuItem que viene de un nivel superior.
                    mnuMenuItem.ChildNodes.Add(mnuNewMenuItem)

                    'llamada recursiva para ver si el nuevo menú ítem aun tiene elementos hijos.
                    AddMenuItem1(mnuNewMenuItem, dtMenuItems)
                End If

            Next

        End Sub





    si tienes dudas pregunta Wink adios

    martes, 3 de julio de 2007 22:06