Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

scoobidu

Menu ASPX BD SQL

Recommended Posts

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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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  😎

Cumprimentos Paulo Silva

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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á :(

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other sites
scoobidu

Mais uma vez agradeço :)

No que puder ajudar tb gosto de ajudar..

Estou a gostar mt deste forum...

Um abraço

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.