Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

scoobidu

Menu ASPX BD SQL

Mensagens Recomendadas

scoobidu

Boa tarde,

Gostava de obter uma ajuda se possível.

Gostava de saber como posso fazer um menu numa pagina web feita em aspx em que os dados desse menu venham de uma base dados SQL.

Os Menu vem de uma tabela designada MENU e submenus de outra tabela SUBMENUS.

Será que me podem ajudar?

Agradeço

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
renafi

Queres usar o objecto Menu que o Visual Studio fornece, certo? Usas o wizard de DataSource que eles têm, ou fazes o preenchimento por código. Tens de percorrer as tabelas e ir enviando MenuItems para a colecção de Items do Menu.

Ps: em princípio, para usar o wizard, deves ter de criar uma view para juntar as duas tabelas numa única.

Qualquer dúvida, diz.


Oracle Certified Professional - AdministraçãoOracle Certified Professional - Pl/sqlMCPD - Microsoft Certified Professional DeveloperMCTS - Microsoft Certified Technology Specialist

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
scoobidu

Refani obrigado pela resposta.

Mas a minha dificuldade  é fazer o código para isso, se o wizard permitisse para mim era excelente, mas pelo que andei a ver não dá ou não consigo descobrir  :wallbash:

Consegues ajudar-me?

Obrigado

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
paulo silva

boas.

Por acaso fazendo o wizard só da para um ficheiro xml e não para base de dados.

Se fosse uma treeview sei fazer mas para o menu não sei.

Vou tentar por acaso nunca tentei.

Se alguem souber como o fazer comunique.  :(

Cumprimentos Paulo Silva

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
paulo silva

Já consegui :(

Primeiro precisas de uma estrutura de base de dados semelhante a esta.

MenuID - Numeracao Automatica
MenuNome - Texto
MenuUrl - Texto
MenuAntecedente - Numero
MenuNr - Numero (A ordem dos campos)
Menuvisivel - bit

Agora o codigo para chamar o menu.

 Dim Codigo_sql As String = "SELECT * FROM Menu_dt WHERE MenuAntecedente=@MenuAntecedente and MenuVisivel = 'true' order by MenuNr;"
        Dim conexao As New SqlConnection()
        conexao.ConnectionString = WebConfigurationManager.ConnectionStrings("Drigot_db").ConnectionString
        conexao.Open()
        Dim command As New SqlCommand(Codigo_sql, conexao)

        command.Parameters.Add("@MenuAntecedente", SqlDbType.Int).Value = ID
        Dim reader As SqlDataReader = command.ExecuteReader()
        Try

            If reader.HasRows Then
                While reader.Read()

                    Dim MenuID As Integer = reader.Item("MenuID")
                    Dim MenuDescricao As String = reader.Item("MenuNome").ToString
                    Dim MenuUrl As String = reader.Item("MenuUrl").ToString
                    ' Dim MenuSize As FontSize = reader.Item("MenuSize").ToString
                    Dim tvNode As MenuItem
                    'Dim Menu As Menu



                    If tvParentNode Is Nothing Then

                        'Dim font As New TreeNodeStyle
                        'With font
                        '    .ForeColor = Drawing.Color.Yellow
                        'End With

                        Dim node As New MenuItem
                        With node
                            .Text = MenuDescricao
                            .Value = MenuID
                            .NavigateUrl = MenuUrl
                        End With
                        'tvMenu.NodeStyle.Font.Size = MenuSize
                        Menu1.Items.Add(node)
                        tvNode = node

                    Else
                        Dim node As New MenuItem
                        With node
                            .Text = MenuDescricao
                            .Value = MenuID
                            .NavigateUrl = MenuUrl
                        End With
                        tvParentNode.ChildItems.Add(node)
                        tvNode = node
                    End If

                    Call MtCarregarMenu(MenuID, tvNode)

                End While
            End If
        Catch ex As Exception
            MsgBox(ex.Message)
            MsgBox("Erro no carregamento - Tente novamente", MsgBoxStyle.Critical, "Tratamento de erro")
        Finally
            conexao.Close()
            command.Dispose()
            reader.Close()
        End Try
    End Sub

   Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Not Page.IsPostBack Then
            MtCarregarMenu(0, Nothing)
        End If

    End Sub

Esperimenta lá e depois diz qualquer coisa  :ipool:

Cumprimentos Paulo Silva

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
renafi

Posso só fazer uma sugestão paulo? E tentar a partir dessa estrutura da BD, exportar os dados para XML, e associar logo esses dados ao datasource do menu?


Oracle Certified Professional - AdministraçãoOracle Certified Professional - Pl/sqlMCPD - Microsoft Certified Professional DeveloperMCTS - Microsoft Certified Technology Specialist

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
paulo silva

Não achas que era complicar?

Aqui exporto directamente para o menu, também se exportasse para o xml depois não tinha de ir tantas vezes à base de dados também não é mal pensado.

Uma situação a ver.

Obrigado pela sugestão.

Cumprimentos Paulo Silva

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
scoobidu

boas,

é com muito agrado que venho aqui dizer o seguinte,

Muito obrigado a todos que me ajudaram na resolução deste problema, nomeadamente o user Paulo Silva, a sua ajuda foi fantástica.

Este forum é excelente, vou continuar por cá :(

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
paulo silva

Não faço mais que o meu "dever" de ajudar quando sei, quando não sei coloco as questões  :(

É uma comunidade 5*.

cumprimentos Paulo Silva

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.