Partager via


Vue d'ensemble des contrôles de menu

Mise à jour : novembre 2007

Le contrôle ASP.NET Menu vous permet de développer des menus qui s'affichent à la fois statiquement et dynamiquement pour vos pages Web ASP.NET.

Cette rubrique contient les sections suivantes :

  • Contexte

  • Exemples de code

  • Référence de Classe

Contexte

Le contrôle Menu a deux modes d'affichage : statique et dynamique. L'affichage statique signifie que le contrôle Menu est entièrement développé en permanence. La structure entière est visible et un utilisateur peut cliquer sur n'importe laquelle de ses parties. Dans un menu affiché dynamiquement, seules les parties que vous spécifiez sont statiques, tandis que leurs éléments de menu enfants s'affichent lorsque l'utilisateur maintient le pointeur de la souris au-dessus du nœud parent.

Vous pouvez configurer directement le contenu du contrôle Menu dans le contrôle lui-même, ou spécifier ce contenu en liant le contrôle à une source de données. Sans écrire de code, vous pouvez contrôler l'apparence, l'orientation et le contenu d'un contrôle ASP.NET Menu. En plus des propriétés visuelles exposées par le contrôle, ce dernier prend en charge l'apparence et le thème des contrôles ASP.NET. Pour plus d'informations sur les apparences et les thèmes, consultez Vue d'ensemble des thèmes et des apparences ASP.NET.

Comportement d'affichage statique

Vous pouvez contrôler le comportement d'affichage statique à l'aide de la propriété StaticDisplayLevels du contrôle Menu. La propriété StaticDisplayLevels indique combien de niveaux doivent s'afficher statiquement à partir de la racine du menu. Par exemple, si StaticDisplayLevels a la valeur 3, votre menu sera développé de façon à afficher ses trois premiers niveaux statiquement. Le niveau d'affichage statique minimum est de 1 et le contrôle lèvera une exception si la valeur est 0 ou un nombre négatif.

Comportement d'affichage dynamique

La propriété MaximumDynamicDisplayLevels spécifie combien de niveaux de nœuds de menu apparaissant dynamiquement doivent s'afficher après le niveau d'affichage statique. Par exemple, si votre menu a un niveau statique de 3 et un niveau dynamique de 2, les trois premiers niveaux de votre menu s'afficheront statiquement tandis que les deux niveaux suivants seront dynamiques.

Si MaximumDynamicDisplayLevels a la valeur 0, aucun nœud de menu ne s'affichera dynamiquement. Si MaximumDynamicDisplayLevels a pour valeur un nombre négatif, une exception sera levée.

Définition du contenu du menu

Vous pouvez définir le contenu du contrôle Menu de deux manières : en ajoutant des objets MenuItem (de façon déclarative ou par programme) ou en liant les données du contrôle à une source de données XML.

Ajout manuel d'éléments de menu

Vous pouvez ajouter des éléments de menu au contrôle en les spécifiant dans la propriété Items. La propriété Items est une collection d'objets MenuItem. L'exemple suivant montre le balisage déclaratif d'un contrôle Menu à trois éléments, chacun d'eux ayant deux éléments enfants :

<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>

Liaison de données à une source de données XML

La liaison à un fichier XML vous permet de contrôler le contenu du menu à travers les modifications apportées au fichier plutôt qu'en utilisant le concepteur. Cela vous permet de mettre à jour l'aspect de la navigation dans votre site sans réviser le contrôle Menu ni modifier le code. Si le contenu de votre site est changeant par nature, vous pouvez utiliser un fichier XML pour l'organiser. Ce fichier peut être injecté dans le contrôle Menu pour veiller à ce que le contenu soit accessible aux utilisateurs du site Web.

Apparence et comportement

Vous pouvez ajuster le comportement du contrôle Menu grâce à ses propriétés. En outre, vous pouvez contrôler le comportement d'affichage dynamique, notamment la durée pendant laquelle un nœud de menu reste visible une fois affiché. Par exemple, pour transformer l'orientation Menu du mode horizontal en vertical, vous pouvez définir la propriété Orientation comme suit :

[Visual Basic]

Menu.Orientation = Orientation.Vertical

[C#]

Menu.Orientation = Orientation.Vertical;

Donner à la propriété la valeur Orientation.Horizontal ramène l'orientation à l'horizontale.

Vous pouvez définir les propriétés du contrôle Menu afin de spécifier sa taille, sa couleur, sa police et d'autres caractéristiques de son apparence. De plus, vous pouvez appliquer des apparences et des thèmes au contrôle Menu.

Style

Chaque niveau de menu prend en charge des propriétés de style. Si aucune propriété de style dynamique n'est définie, ce sont les propriétés de style statiques qui sont utilisées. Si les propriétés de style dynamiques sont définies alors qu'aucune propriété de style statique ne l'est, c'est le rendu par défaut des propriétés de style statiques qui est utilisé. La hiérarchie du style du contrôle Menu est la suivante :

  1. Contrôle

  2. SubMenuStyles

  3. MenuItemStyles

  4. SelectedItemStyles

  5. HoverMenuItemStyles

Ces styles sont fusionnés dans les menus dynamiques et statiques selon la logique suivante :

  • Chaque style est appliqué au type d'action ou d'élément approprié.

  • Tous les styles sont fusionnés dans le style qui les précède dans la hiérarchie, le dernier style s'imposant.

    Remarque :

    Les menus statiques ne fusionnent jamais et le style dynamique est appliqué si aucun style statique n'est défini.

Minutage d'apparence dynamique

Un des paramètres des menus dynamiques est le temps nécessaire pour que la partie du menu apparaissant dynamiquement disparaisse. Cette valeur est configurable en millisecondes en modifiant la propriété DisappearAfter comme suit :

[Visual Basic]

Menu.DisappearAfter = 1000

[C#]

Menu.DisappearAfter = 1000;

La valeur par défaut est 500 millisecondes. Si la valeur de DisappearAfter est 0, une pause en dehors du contrôle Menu le fait immédiatement disparaître. Attribuer -1 à la valeur indique que le temps de pause doit être infini et que ce n'est qu'en cliquant en dehors du contrôle Menu que la partie dynamique disparaîtra.

Utilisation des contrôles de menu avec les contrôles UpdatePanel

Les contrôles UpdatePanel permettent de mettre à jour des zones sélectionnées sur une page plutôt que la page entière avec une publication. Le contrôle Menu peut être utilisé à l'intérieur d'un contrôle UpdatePanel, à condition que les styles soient appliqués à l'aide d'une référence à une classe de feuilles de style en cascade (CSS, Cascading Style Sheets). Par exemple, au lieu de définir la propriété DynamicHoverStyle à l'aide d'un attribut property-subproperty, vous pouvez définir le style à l'aide de l'attribut property-CssClass. De même, lorsque vous utilisez le modèle DynamicHoverStyle pour définir un style, vous pouvez utiliser l'attribut CssClass de ce modèle.

Pour plus d'informations sur l'utilisation des contrôles UpdatePanel, consultez Vue d'ensemble du contrôle UpdatePanel et Vue d'ensemble du rendu de page partielle.

Exemples de code

Utilisation de CSS et de styles avec le contrôle Menu

Utilisation d'images avec le contrôle Menu

Procédure pas à pas : affichage d'un menu sur des pages Web

Procédure pas à pas : contrôle des menus ASP.NET par programme

Retour au début

Référence de Classe

Le tableau suivant répertorie les classes liées au contrôle Menu.

Member

Description

Menu

Classe principale du contrôle

MenuEventArgs

Fournit des données pour les événements MenuItemClick et MenuItemDataBound d'un contrôle Menu.

MenuEventHandler

Représente la méthode qui gère l'événement MenuItemClick ou MenuItemDataBound d'un contrôle Menu.

MenuItem

Représente un élément de menu du contrôle Menu.

MenuItemBinding

Définit la relation entre un élément de données et l'élément de menu auquel il est lié dans un contrôle Menu.

MenuItemBindingCollection

Représente une collection d'objets MenuItemBinding.

MenuItemCollection

Représente une collection d'éléments de menu dans un contrôle Menu.

MenuItemStyle

Représente le style d'un élément de menu d'un contrôle Menu.

MenuItemStyleCollection

Représente une collection d'objets MenuItemStyle dans un contrôle Menu.

Retour au début

Voir aussi

Concepts

Vue d'ensemble de la navigation de site ASP.NET

Référence

Menu

Autres ressources

Contrôles de boîte à outils de navigation