Visão Geral do Controle de Menu
O controle Menu do ASP.NET permite que você desenvolva ambos os menus, exibidos de forma estática e de forma dinâmica, para suas páginas Web do ASP.NET.
Esse tópico contém:
Segundo plano
Exemplos de código
Referência de Classe
Segundo plano
The Menu controle tem dois modos de exibição: estático e dinâmico.Exibição estática significa que o controle Menu está totalmente expandido o tempo todo.A estrutura inteira está visível, e um usuário pode clicar em qualquer parte.Em um menu exibido dinamicamente, somente as partes que você especifica são estáticas, enquanto os seus itens de menu filhos são exibidos quando o usuário mantém o ponteiro do mouse sobre o nó pai.
Você pode configurar o conteúdo do controle Menu diretamente no controle, ou você pode especificar o conteúdo, vinculando o controle a uma fonte de dados.Sem escrever nenhum código, você pode controlar a aparência, a orientação e o conteúdo de um controle Menu do ASP.NET.Além das propriedades visuais expostas pelo controle, o controle suporta capas de controle do ASP.NET e temas.Para obter mais informações sobre capas e temas, consulte Visão Geral de Temas e Aparências ASP.NET.
Comportamento de Exibição Estática
Você pode controlar o comportamento de exibição estática, usando a propriedade StaticDisplayLevels do controle Menu.A propriedade StaticDisplayLevels indica quantos níveis a serem exibidos estaticamente da raiz do menu.Por exemplo, se StaticDisplayLevels estiver definida como 3, o seu menu será expandido para exibir seus primeiros três níveis estaticamente.O nível mínimo de exibição estática é 1, e o controle irá lançar uma exceção se o valor for definido para 0 ou para um número negativo.
Comportamento de exibição dinâmica
A propriedade MaximumDynamicDisplayLevels especifica quantos níveis de nós de menu que aparecem dinamicamente devem ser exibidos após o nível de exibição estática.Por exemplo, se o seu menu possui um nível estático de 3 e um nível dinâmico de 2, os primeiros três níveis do seu menu seriam estaticamente exibidos, enquanto os próximos dois níveis seriam dinâmicos.
Se MaximumDynamicDisplayLevels estiver definida como 0, nenhum nó do menu será exibido dinamicamente.Se MaximumDynamicDisplayLevels estiver definida como um número negativo, uma exceção será lançada.
Definindo Conteúdo de Menu
Você pode definir o conteúdo para o Menu controle de duas maneiras: adicionando individuais MenuItem objetos (declarativamente ou através de programação) e pelos dados vinculando o controle a uma fonte de dados XML.
Adicionando Itens de Menu Manualmente
Você pode adicionar itens de menu individuais ao controle, especificando-os na propriedade Items.A propriedade Items é uma coleção de objetos MenuItem.O exemplo a seguir mostra a marcação declarativa para um controle Menu com três itens, cada um deles possui dois itens filhos:
<asp:Menu ID="Menu1" StaticDisplayLevels="3">
<Items>
<asp:MenuItem Text="File" Value="File">
<asp:MenuItem Text="New" Value="New"></asp:MenuItem>
<asp:MenuItem Text="Open" Value="Open"></asp:MenuItem>
</asp:MenuItem>
<asp:MenuItem Text="Edit" Value="Edit">
<asp:MenuItem Text="Copy" Value="Copy"></asp:MenuItem>
<asp:MenuItem Text="Paste" Value="Paste"></asp:MenuItem>
</asp:MenuItem>
<asp:MenuItem Text="View" Value="View">
<asp:MenuItem Text="Normal" Value="Normal"></asp:MenuItem>
<asp:MenuItem Text="Preview" Value="Preview"></asp:MenuItem>
</asp:MenuItem>
</Items>
</asp:Menu>
Associando Dados a uma Fonte de Dados XML
Associar a um arquivo XML permite que você controle o conteúdo do menu por edições do arquivo, em vez de usar o designer.Isso permite que você atualize o aspecto de navegação do seu site sem revisitar o controle Menu ou editar nenhum código.Se você possuir um site com conteúdo que muda, um arquivo XML pode ser usado para organizar o conteúdo e alimentado para o controle Menu para certificar-se de que o conteúdo é acessível aos usuários do Web site.
Aparência e Comportamento
Você pode ajustar o comportamento do controle Menu através das suas propriedades.Além disso, você pode controlar o comportamento da exibição dinâmica, incluindo a quantidade de tempo que um nó do menu permanece visível quando ele é exibido.Por exemplo, para alterar a orientação Menu de horizontal para vertical, você pode definir a propriedade Orientation da seguinte maneira:
[Visual Basic]
Menu.Orientation = Orientation.Vertical
[C#]
Menu.Orientation = Orientation.Vertical;
Definir a propriedade como Orientation.Horizontal altera a orientação de volta para horizontal.
Você pode definir propriedades individuais do controle Menu para especificar o tamanho, a cor, a fonte e outras características da sua aparência.Além disso, você pode aplicar temas e capas para o controle Menu.
Style
Cada nível do menu suporta propriedades de estilo.Se nenhuma propriedade de estilo dinâmica estiver definida, as propriedades de estilo estáticas serão usadas.Se as propriedades de estilo dinâmicas estiverem definidas e nenhuma propriedade de estilo estática estiver definida, o processamento padrão das propriedades de estilo estáticas será usado.A hierarquia de estilo do controle Menu é a seguinte:
Controle
SubMenuStyles
MenuItemStyles
SelectedItemStyles
HoverMenuItemStyles
Esses estilos são mesclados entre menus dinâmicos e estáticos usando a seguinte lógica:
Cada estilo individual é aplicado para a ação apropriada ou tipo de item apropriado.
Todos os estilos são mesclados para o estilo anterior a eles na hierarquia, com o último estilo substituindo.
Observação: Menus estáticos nunca mesclam e o estilo dinâmico é aplicado se um estilo estático não estiver definido.
Intervalo de Aparência Dinâmica
Um aspecto de um menu dinâmico é a quantidade de tempo que ele leva para que a parte que aparece dinamicamente de um menu desapareça.Esse valor é configurável em milissegundos, ajustando a propriedade DisappearAfter da seguinte maneira:
[Visual Basic]
Menu.DisappearAfter = 1000
[C#]
Menu.DisappearAfter = 1000;
O valor padrão é 500 milissegundos.Se o valor de DisappearAfter é definido como 0, pausar fora do controle Menu faz com que ela desapareça imediatamente.Definir o valor como -1 indica que o tempo de pausa deve ser infinito, e apenas clicando fora do controle Menu é que a parte dinâmica irá desaparecer.
Usando o Controle do Menu com Controles UpdatePanel
UpdatePanel controls are used to update selected regions of a page instead of updating the whole page with a postback.O controle Menu pode ser usado dentro de um controle UpdatePanel com a restrição que estilos devam ser aplicados usando uma referência a uma classe de Folha de Estilos em Cascata (CSS).For example, instead of setting the DynamicHoverStyle property by using a property-subproperty attribute, set the style by using the property-CssClass attribute.Da mesma forma, quando você usa o modelo DynamicHoverStyle para definir um estilo, use o atributo CssClass do modelo.
For more information about using UpdatePanel controls, see Visão geral sobre controle UpdatePanel and Visão geral de renderização de página parcial.
Exemplos de código
Usando CSS e Estilos com o Menu Controle
Usando Imagens com o Controle de Menu
Explicação passo a passo: Exibindo um menu em páginas da Web
Demonstra Passo a passo: Controlando menus do ASP.NET por programação
Voltar ao topo
Referência de Classe
A tabela seguinte lista as classes que estão relacionadas ao controle Menu.
Membro |
Descrição |
---|---|
A classe principal para o controle. |
|
Fornece dados para os eventos MenuItemClick e MenuItemDataBound de um controle Menu. |
|
Representa o método que manipula o evento MenuItemClick ou o evento MenuItemDataBound de um controle Menu. |
|
Representa um item de menu exibido no controle Menu. |
|
Define a relação entre um item de dados e o item de menu ao qual ele está vinculando em um controle Menu. |
|
Representa uma coleção de objetos MenuItemBinding. |
|
Representa uma coleção de itens de menu em um controle Menu. |
|
Representa o estilo de um item de menu em um controle Menu. |
|
Representa uma coleção de objetos MenuItemStyle em um controle Menu. |
Voltar ao topo
Consulte também
Conceitos
Visão geral sobre navegação em sites do ASP.NET