Parte 1

    OlĂĄ pessoal, gostaria de fazer e mostrar hoje como montar “menu” com os dados vindo diretamente do banco de dados. Muitos aplicativos montam o seu “menu” cadastrado no banco de dados. Cada um com seu perfil e sua permissĂŁo. Para isso Ă© necessĂĄrio ter primeiro uma boa estrutura de banco de dados e campos para montĂĄ-lo.

    Em momentos anteriores, escrevi alguns artigos que montam “menu” diretamente de um XML e com o componente diferente, ou seja, que precisa ser referenciado no projeto. Esse artigo serĂĄ um pouco diferente pois, os dados sĂŁo de um banco de dados e o componente para montar o menu Ă© o nativo da ferramenta.

Link dos artigos anteriores:
http://www.aspneti.com/CRIANDO+MENU+DINaMICO+COM+C.NET+Passo+1+245,0.aspx

http://www.aspneti.com.br/Criando+menu+dinamico+com+C.NET+(Passo+2)+Com+diferenciacao+de+usuario+4,0.aspx

    Nesta primeira parte, eu vou mostrar o banco de dados montado para que entenda desde o começo o passo a passo. Pegando os dados do menu vindo do banco de dados.

ReferĂȘncia:
Visual Studio .NET 2008
Banco de dados SQL Server
Linguagem C#.NET
Plataforma Web ASP.NET.

    O primeiro passo Ă© criar uma tabela no banco de dados. Dei o nome de dbo.Objeto. Essa tabela terĂĄ o menu, links, ordenação e informaçÔes necessĂĄrias para montar o menu. ReferĂȘncia Imagem 1.1


ReferĂȘncia: Imagem 1.1

    O campo ObjetoId Ă© auto-incremento e o objetoPaiId Ă© um auto relacionamento indicando o menu principal. Por exemplo: se o “menu” for o principal, esse campo ObjetoPaiId serĂĄ NULL. Para o submenu o objetoPaiId terĂĄ um nĂșmero indicando o ObjetoId. Segue a imagem preenchida para que tenha uma outra boa referĂȘncia. (Imagem 1.2)


ReferĂȘncia: Imagem 1.2

    Produção
        --> Formaliza Conta

    Note na imagem que na primeira linha o ObjetoPaiId estĂĄ NULL (o Ășltimo campo da primeira linha). Note tambĂ©m que a segunda linha e no Ășltimo campo existe um nĂșmero referenciado, Ă© o mesmo da primeira linha; ou seja; um auto-relacionamento.

    Coloquei tambĂ©m alguns campos que no momento nĂŁo vou utilizar, mas pode ser que futuro, coloquei os campos ExibeImagem, e URLImagem. Isso Ă© para caso o seu menu tenha alguma imagem que precise ser mostrada.
   
        No campo endereço, coloquei o nome da pĂĄgina com a extensĂŁo. Veja que nĂŁo coloquei o endereço completo sĂł o nome da pĂĄgina propriamente dito. Todas as minhas pĂĄginas estĂŁo no diretĂłrio raiz, dessa forma coloquei sĂł o nome da pĂĄgina. Se tivesse dentro de uma pasta, colocaria o nome da pasta barra o nome da pĂĄgina. (Isso Ă© sĂł para que entenda como funciona).
  
        O objeto que vou usar para mostrar o “menu” Ă© o do prĂłprio Visual Studio .NET 2008. A versĂŁo da ferramenta nĂŁo importa, pois o <ASP:MENU> Ă© o mesmo das versĂ”es anteriores.
   
        E esse objeto funciona em todos os browsers sem qualquer problema. Pelo menos em meus testes, todos abriram.
   
        AlĂ©m do objeto <ASP:MENU> vou usar CSS e Imagens para ficar bonito o menu montado na tela. No prĂłximo artigo eu vou mostrar o cĂłdigo funcionando. Acredito deixar em 3 partes ou 2 partes, para que nĂŁo fique grande demais e cansativo para a leitura.

Fico por aqui e qualquer dĂșvida pode entrar em contato pelo site.