DICAS .NET

 Busca Online:

 
Seja bem vindo(a) Visitante, você não está logado deseja logar
no portal para participar de serviços e promoções ? clique aqui.


No caso de perder a senha, acesse aqui e receba por e-mail.
Deseja entrar em contato conosco, acesse aqui e mande-nos um e-mail.

CRIANDO MENU DINÂMICO COM C#.NET Passo 1

por Mauricio Junior em 1/1/2011 0

 

Estarei criando primeiramente um menu para ser utilizado por um sistema.

É bem simples de desenvolver e usar. Este artigo é dividido em duas partes. Estarei usando um componente free chamado skyMenu. Esse componente é feito apenas para ler um arquivo xml e mostrar em uma página .aspx. Estarei explicando passo a passo de como fazer o menu dinâmico para ser utilizado em qualquer sistema.

 

Criei um projeto chamado Artigos. Adicionei uma pasta chamada menu e dentro adicionei um arquivo chamado menu.ascx. Veja a figura 1-1 e 1-2.

 

Referência: 1-1

 

Cliquei com o botão direito em cima do projeto, fui ao menu Add Folder, logo após Regular Folder, digitei o nome menu. Figura 1-2.

 

Referência: 1-2

 

Depois da pasta criada, cliquei com o botão direito em cima da pasta menu, logo apo Add New Item..., adicionando um arquivo user control. Não esqueça que um arquivo user control, tem a extensão .ascx. Veja na figura 1-3 o passo a passo.

 

 

Referência: 1-3

 

A figura 1-4 mostra apenas user control, colocando o nome menu.ascx.

 

 

Referência: 1-4

 

Depois de criado, tenho que adicionar uma dll de referência no projeto para usá-la. Essa dll estará disponível para download neste artigo. Clique com o botão direito em cima do projeto e clique Add Reference, e escolha a dll. Veja na figura 1-5.

 

 

Referência: 1-5

 

A figura de referência 1-6 apenas mostra adicionando a dll no projeto para ser usada mais tarde. Lembre-se que essa dll é grátis e pode ser adicionada no seu projeto apenas clicando no Add Reference...

 

 

Referência: 1-6

 

 

Adicione dentro da página menu.ascx o código abaixo:

 

<%@ Register TagPrefix="cc1" Namespace="skmMenu" Assembly="skmMenu" %>

<cc1:menu id="Menu1" runat="server" ItemPadding="5" ItemSpacing="0" zIndex="2000" Font-Size="8pt"

            MenuFadeDelay="1" Cursor="Pointer" SubMenuCssClass="menu" Layout="Horizontal" HighlightTopMenu="false">

            <SelectedMenuItemStyle CssClass="menuSelecionado"></SelectedMenuItemStyle>

</cc1:menu>

 

Estou utilizando o menu dentro da página menu.ascx. Note que esse menu funciona em qualquer brownser, tanto faz se é IE, Mozilla ou FireFox, funciona do mesmo jeito e do mesmo layout. Esse código acima foi inserido na parte HTML da página.

Antes de inserir o code-behing da página menu.ascx, terei que criar um arquivo xml, pode ser de qualquer nome, estarei colocando o nome do mesmo como menu.xml. Adicione da mesma forma como adicionou o menu.ascx o menu.xml.

 

 

Referência: 1-7

 

Veja a figura de referência 1-8, mostra o código xml do arquivo do menu.xml.

 

Referência: 1-9

 

Depois de criar o arquivo menu.xml definindo o menu, abri o arquivo menu.ascx, cliquei duas vezes na página normalmente e adicionei o código abaixo:

 

protected void preencheMenu()

{

this.Menu1.DataSource = "http://localhost/Artigos/menu/menu.xml";

this.Menu1.DataBind();

}

 

Criei apenas um método protected chamado preencheMenu(), adicionando o datasource do Menu1, indicando o xml criado anteriormente. Logo depois, mando preencher o objeto com o DataBind().

Cliquei com o botão direito em cima do projeto e adicionei mais uma página chamada default.aspx, por enquanto a mesma terá só um prefixo incluindo o arquivo menu.ascx. Funciona como se fosse include no ASP 3.0.

 

Veja o código abaixo junto com a explicação:

 

Primeiramente adicionei um Prefixo indicando o nome do arquivo ascx.

<%@ Register TagPrefix="Prefixo" TagName="menu" src="menu/menu.ascx" %>

 

Depois de colocar o endereço correto do arquivo, uso o mesmo mais abaixo, com o seguinte código:

 

Prefixo: Nome do tagPrefix,

Id= pode ser qualquer nome

Runat = sempre deve ser o server

Fecha a tag.

 

<Prefixo:menu id="menu" runat="server"></Prefixo:menu>

 

A figura de referência 1-10 mostra como o código ficará na página default.aspx.

 

Referência: 1-10

 

Coloquei como página inicial do projeto o arquivo default.aspx e iniciei a aplicação. Veja na figura de referência 1-11 o funcionamento do menu. O interessante é que o menu funciona em qualquer brownser sem problemas.

 

Referência: 1-11

 

Espero que tenham gostado.

Mauricio Junior

mauricio@ascompras.com

 

 

 

 

voltar   comente  subir

Download Copy





 
Mauricio Junior Formado pela Faculdade Anhanguera, Especialista pela FGV (Fundação Getúlio Vargas), Pós-Graduação em Docência Superior e cursando Mestrado na UNB Engenharia Elétrica; .
Tenho 29 anos e possuo sete livros publicados pela editora Ciência Moderna. Sou Certificado Microsoft MCP, MCAD e MVP, faço parte da comunidade ASPNETI.COM, ECODE10.COM, onde publico artigos, vídeos, ebooks e livros Publico artigos, vídeos e podcast em outras comunidades. Trabalho como Analista de Sistemas / Desenvolvedor na empresa ATP S/A. Blog: blog.mauriciojunior.org, Site pessoal www.mauriciojunior.org



Comentários:

Comentado por: Carlos Junior - 24/7/2006 21:38:10
O melhor tutorial que eu já li...
Obrigado
Comentado por: Mauricio Junior - 24/7/2006 21:58:33
Por nada Carlos Junior, espero que continue gostando de nossos artigos, vídeos e forum junto a comunidade aspneti.com.

Abraços.
Comentado por: otilia - 6/6/2007 15:42:03
Aonde consigo a dll skyMenu?
Comentado por: Emmanuela Luz marques - 29/8/2007 14:30:44
Seria mais interessante se o skymenu ao qual se referiu e citou como um download possível estivesse realmente disponível. É uma pena que seu turorial se baseie em algo não fornecido e se torne, portanto, inaplicável.
Comentado por: KOF - 4/10/2007 16:10:07
Esta dificil de fazer isto em Asp.NET 3.0
Ainda mais por ser dificil achar para download do componente SkyMenu.dll
Comentado por: Luiz Antonio D.E. Franco - 19/3/2008 0:00:00
Aonde eu consigo a dll skyMenu para download a qual se refere esse artigo se pd me auxiliar desde já muito obrigado
Comentado por: Patricia - 28/3/2008 0:00:00
Oi Luiz
para fazer o download acesse

www.skmmenu.com



Comentado por: Jorge Dória - 4/6/2008 0:00:00
Só não gostei de uma coisa. Onde está o link para baixar o componente skyMenu?
Comentado por: aderitro - 2/7/2008 0:00:00
gostei do artigo porem poderia telo de modo para baixar igual o passo 2.
Sugestao os seus artigos e de todos os colegas poderia ter algum recurso de efetuar o dowloads pois quando imprimir nao sairia todos as propagandas....sei o comercial disto porem
Comentado por: aderitro - 2/7/2008 0:00:00
gostei do artigo porem poderia telo de modo para baixar igual o passo 2.
Sugestao os seus artigos e de todos os colegas poderia ter algum recurso de efetuar o dowloads pois quando imprimir nao sairia todos as propagandas....sei o comercial disto porem
Comentado por: Johni Carrilho Amafont - 8/9/2008 0:00:00
Achei legal o exemplo, já peguei o EXEMP-2. E ele já vem com a dll "skiMenu.dll", vou testar isto hj. mesmos. Mas desde já agradeço ao autor deste artigo, visto que deve ser de boa avalia. ParaBens !
Comentado por: Jair - 8/10/2008 0:00:00
Interessante o artigo, o problema é que todo mundo usa arquivo XML pra criar os menus dinâmicos e o infame do arquivo está sempre já definito, ou seja, ninguém ensina a gerar um arquivo a partir dos dados do menu lidos do banco. Aì fica difícil.

Comentado por: Letícia Olave Brito Margarites - 17/11/2010 0:00:00
Mauricio, estou tentando fazer um componente "menu" ser construído através de um retorno da stored procedure. Essa vai retornar os itens possiveis para cada usuário. esse componente suporta esse tipo de funçao? Aguardo retorno urgente
Comentado por: Mauricio Junior - 23/11/2010 0:00:00
Letícia,
Basta você acessar o link abaixo que tem um menu sendo montado via banco de dados. www.aspneti.com/utilizando+asp+menu+919,0.aspx
Comentado por: Rafael Temer Fers de Almeida - 12/1/2011 0:00:00
Mauricio, o seu menu é muito bom só que ele não funciona muito bem para 2 menus... mas muito bom o artigo
Comentado por: Mauricio Junior - 12/1/2011 0:00:00
Olá Rafael, o que quer dizer com para 2 menus?
Comentado por: Rafael Temer Fers de Almeida - 12/1/2011 0:00:00
Mauricio, Estou tentando colocar este menu na MasterPage, mas ele não funciona muito bem, o grandre problema é: eu crio 2 menus no xml igual vocês esta falando no artigo, mas quando eu faço a exibição da pagina no browser, exibe os submenus somente no primeiro menu. Quando eu vou ao menu 2 os itens aparecem no menu 1. Se puder me ajudar eu agradeço.
Comentado por: LUAN SIDNEY - 30/1/2012 0:00:00
Mauricio, segui o tutorial e no IE funcionou perfeitamente. Porém, no firefox e no chrome, quando se encosta o mouse nos menus, o menu desce no canto esquerdo. Tanto na Vertical, quanto na horizontal esta acontecendo isso. Obrigado.
Comentado por: Mauricio Junior - 30/1/2012 0:00:00
Luan, peço que você retire todos os estilos da sua página, incluindo da master page para testar a compatibilidade. Não importa o que você tenha apenas um stylo, retire todos por gentileza.

Comente (dê sua opinião):

Comentário:
Código Imagem:  (digite o código da imagem respeitando maiúsculo e minúsculo)

Favor digitar o código da imagem para cadastramento.

 

Outros Artigos do Autor

ReportViewer sem DataSet Tipado e gerando PDF
VSS Versionador - Resumão
Importação e Comunicação entre Sistemas
Public Interface
Sistema que faz busca no google
Windows Phone 7 Multi Touch
Vírus do Serasa por E-mail
Certificação - Segunda Chance
Generics na prática
Microsoft touch mouse
IsData
Resources e Internacionalização usando Visual Studio.NET 2005 (Parte IV)
ASP.NET MVC
CES 2008: Keynote do Bill Gates
MaskedTextBox da direita para esquerda
C# - Da introdução ao primeiro projeto-1
Consultando CEP via WebService
Sistema de Login em ASP – Parte VII (Utilizando três camadas)
Windows Form - Retornando valor entre formulários
Documento padrão de desenvolvimento
Criando XML a partir do DataSet Tipado com Visual Studio.NET 2005 – Parte I
Usando Dll Nativa e Using
ASP.NET 4.0 and Visual Studio 2010 Web Development Beta 2 Overview
O Avanço do Blu-Ray no Brasil
Trabalhando com GridView e BoundField escondido
Utilizando o GridView e DetailsView
Inside Xbox Live Game
MSDN Media Center - download de vídeos
iMove Developer: chegou para te ajudar
Pegando IP da Máquina com CSharp
Usando themes ASP.NET 2.0 (Parte 1)
Vídeo - Conecte
Virtual Earth - Segundo Passo
Trabalhando com o componente Accordion
Armazenando dados no ViewState – Parte I




eCode10 Magazine 4 Edição

Baixe a sua sem pagar nada, basta apenas ter um cadastro na comunidade aspneti.com ou ser usuário do ecode10.com.



Edições anteriores
LAYERDEV

Notícias *

Lenovo de 14 polegadas IdeaPad

Veja o novo notebook Lenovo IdeaPad...

Windows 8 Store

Channel9 publica um vídeo da Windows Store...

Sony Vaio série Z

Novo Vaio Ultrabook? ou não Ultrabook?...

Samsung quer comprar RIM

Imagine se juntar as duas companhias...

Surface 2.0 mostrado

Novo Surface é mostrado de forma incrível...

Skype Tablet

Será que esse skype tablet pega mesmo?...

Lenovo e o seu novo Ultrabook

Ultrabook chega também pela Lenovo...

Promoções de livros móveis .NET

Baixa agora o seu e aprenda a programar....

A Era dos UltraBooks

Os modelos mais dos Ultrabooks...




NETITC