none
O tem de errado neste código - Menu Perfil de Usuário RRS feed

  • Pergunta

  • Olá pessoal,

    Estou tentando montar um menu de acordo com o perfil de usuários, mas estou com prolbemas ao tentar popular os submenus. O erro está acontecendo no último código (Private Sub PovoaModulos() ). Abaixo segue o código completo.

    Grato,

    Ilano.



        Private Sub PovoaTipoModulos()
            Dim Ds As Data.DataSet
            Dim X As Integer
            X = 0
           
            Ds = Tipos.Consultar(" Tipo_Codigo2 IS NULL ")
            Lista.DataSource = Ds
            Lista.DataBind()

            Menu1.Items.Clear()

            For Each i As ListItem In Lista.Items
                Menu1.Items.Add(New MenuItem(i.Text, X, "", "", ""))
                X = X + 1
            Next
            Menu1.Items.Add(New MenuItem("SAIR", X, "", "~/Index.aspx", ""))

            PovoaSubTipos()

        End Sub

        Private Sub PovoaSubTipos()
            Dim Ds, Ds2 As Data.DataSet
            Dim X As Integer
            X = 0

            Ds = Tipos.Consultar(" Tipo_Codigo2 IS NULL ")
            Lista.DataSource = Ds
            Lista.DataBind()

            For Each i As ListItem In Lista.Items
                Ds2 = Tipos.Consultar(" Tipo_Codigo2 = " & i.Value)
                SubLista.DataSource = Ds2
                SubLista.DataBind()
                For Each c As ListItem In SubLista.Items
                    Menu1.Items.Item(X).ChildItems.Add(New MenuItem(c.Text, X, "", "", ""))
                Next
                X = X + 1
            Next

            PovoaModulos()

        End Sub

        Private Sub PovoaModulos()
            Dim Ds, Ds2 As Data.DataSet
            Dim Gi As DataGridItem
            Dim pModulo, pArquivo, pTarget As WebControls.Label
            Dim X, Y As Integer
            X = 0
            Y = 0

            For Each i As ListItem In Lista.Items
                Ds2 = Tipos.Consultar(" Tipo_Codigo2 = " & i.Value)
                SubLista.DataSource = Ds2
                SubLista.DataBind()
                For Each c As ListItem In SubLista.Items
                    Ds = Permissoes.ConsultaAvancada(" A.Usu_Codigo = " & Session("sUsuID") & " AND A.Perm_Visivel = 'S' AND D.Mod_Categoria = 'VES' AND D.Tipo_Codigo = " & c.Value)
                    DataGrid1.DataSource = Ds
                    DataGrid1.DataBind()

                    For Each Gi In DataGrid1.Items
                        pModulo = Gi.Cells(0).FindControl("LbModulo1")
                        pArquivo = Gi.Cells(0).FindControl("LbArquivo1")
                        pTarget = Gi.Cells(0).FindControl("LbTagert1")

                        With DataGrid1
                            Menu1.Items.Item(X).ChildItems.Item(Y).ChildItems.Add(New MenuItem(pModulo.Text, Y, "", pArquivo.Text, pTarget.Text))
                        End With

                    Next
                    Y = Y + 1
                Next
                X = X + 1

            Next

        End Sub

    terça-feira, 1 de setembro de 2009 17:26

Respostas

  • Na verdade, o q estava acontecendo era q, como estava contando os nós (X e Y) como eu não mandava zerar Y a sequência não condizia com a quantidade de itens já incluídos em um menu e/oyu submenu.

    Finalmente encontrei a resposta, e agora está fazendo direitinho!

    Só precisava adicionar a linha Y = 0 após X = X + 1 .
    • Marcado como Resposta Harley Araujo quinta-feira, 3 de setembro de 2009 18:09
    quinta-feira, 3 de setembro de 2009 15:42

Todas as Respostas

  • ola....

    Pode ser + especifico ? que erro que dá ? em runtime / compiled time....
    Fernando Cerqueira MVP.ASP.NET TEAM AJAX.TOOLKIT CONSULTOR & ARQUITETO
    terça-feira, 1 de setembro de 2009 22:01
    Moderador
  • Na verdade, o q estava acontecendo era q, como estava contando os nós (X e Y) como eu não mandava zerar Y a sequência não condizia com a quantidade de itens já incluídos em um menu e/oyu submenu.

    Finalmente encontrei a resposta, e agora está fazendo direitinho!

    Só precisava adicionar a linha Y = 0 após X = X + 1 .
    • Marcado como Resposta Harley Araujo quinta-feira, 3 de setembro de 2009 18:09
    quinta-feira, 3 de setembro de 2009 15:42
  • O novo problema q enfrento agora é a questão das divs. Algumas dis se sobrepõem ao Menu, como evitar isso?
    quinta-feira, 3 de setembro de 2009 15:54
  • Boa tarde ilanocf.

    Por favor sempre que tiver novas duvidas abra um novo tópico, para que os tópicos que já foram respondidos são sejam reabertos;

    “Caso esta resposta tenha ajudado a solucionar sua dúvida, favor clicar em “Marcar como Resposta” para beneficiar outros membros da comunidade que estejam lendo este thread”.
    Atenciosamente,
    Harley Araujo
    quinta-feira, 3 de setembro de 2009 18:11