Exporter (0) Imprimer
Développer tout

MenuItem, classe

Mise à jour : novembre 2007

Représente un élément de menu dans le contrôle Menu. Cette classe ne peut pas être héritée.

Espace de noms :  System.Web.UI.WebControls
Assembly :  System.Web (dans System.Web.dll)

[AspNetHostingPermissionAttribute(SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermissionAttribute(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
public sealed class MenuItem : IStateManager, 
	ICloneable
/** @attribute AspNetHostingPermissionAttribute(SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal) */
/** @attribute AspNetHostingPermissionAttribute(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal) */
public final class MenuItem implements IStateManager, 
	ICloneable
public final class MenuItem implements IStateManager, ICloneable

Un contrôle Menu est composé d'une hiérarchie d'éléments de menu représentée par les objets MenuItem. Chaque élément de menu a une propriété Depth en lecture seule qui spécifie le niveau auquel l'élément de menu est affiché dans le contrôle Menu. Les éléments de menu au niveau supérieur (niveau 0) qui n'ont pas d'élément de menu parent sont appelés éléments de menu racine. Un élément de menu qui a un élément de menu parent est appelé élément de sous-menu. Tous les éléments de menu racine sont stockés dans la collection Items. Les éléments de sous-menu sont stockés dans une collection ChildItems d'un élément de menu parent. Vous pouvez accéder à un élément de menu de parent d'un élément de menu à l'aide de la propriété Parent.

Remarque :

Les collections Items et ChildItems contiennent uniquement les éléments de menu du dernier niveau vers le bas. Pour accéder aux éléments de menu plus en bas de l'arborescence du menu, utilisez la propriété ChildItems d'un élément de menu suivant.

Pour créer les éléments de menu d'un contrôle Menu, utilisez l'une des méthodes suivantes :

utilisez une syntaxe déclarative pour créer des éléments de menu statiques ;

utilisez un constructeur pour créer de manière dynamique des instances nouvelles de la classe MenuItem. Ces objets MenuItem peuvent ensuite être ajoutés à la collection Items ou ChildItems ;

liez le contrôle Menu à la source de données. Lorsque le contrôle Menu est lié à un contrôle SiteMapDataSource, les objets MenuItem sont créés automatiquement et correspondent aux éléments de la source de données. Pour d'autres sources de données, les objets MenuItem sont également créés automatiquement et correspondent à la structure hiérarchique de source de données. Toutefois, vous devez également utiliser la collection DataBindings pour définir les liaisons d'éléments de menu qui spécifient la relation de liaison entre un élément de menu et son élément de données correspondant.

Les éléments de menu s'affichent dans un menu statique ou dans un menu dynamique, selon leur niveau. Le menu statique s'affiche toujours dans un contrôle Menu. Par défaut, les éléments de menu au niveau supérieur (niveau 0) s'affichent dans le menu statique. Vous pouvez afficher des niveaux de menu supplémentaires (sous-menus statiques) dans le menu statique en définissant la propriété StaticDisplayLevels. Les éléments de menu (le cas échéant) avec un niveau supérieur à la valeur spécifiée par la propriété StaticDisplayLevels s'affichent dans un sous-menu dynamique. Un sous-menu dynamique n'apparaît que lorsque l'utilisateur positionne le pointeur de la souris sur l'élément de menu parent qui contient un sous-menu dynamique.

Lorsque l'utilisateur clique sur un élément de menu, le contrôle Menu peut naviguer vers une page Web liée ou simplement effectuer une publication sur le serveur. Si la propriété NavigateUrl d'un élément de menu est définie, le contrôle Menu navigue vers la page liée ; sinon, il publie la page sur le serveur pour traitement. Par défaut, une page liée s'affiche dans la même fenêtre ou frame que le contrôle Menu. Pour afficher le contenu lié dans une fenêtre ou frame différent, utilisez la propriété Target du contrôle Menu.

Remarque :

La propriété Menu.Target affecte chaque élément de menu du contrôle. Pour spécifier une fenêtre ou frame d'un élément de menu, définissez directement la propriété Target de l'objet MenuItem.

Chaque élément de menu a un Text et une propriété Value. La valeur de la propriété Text s'affiche dans le contrôle Menu, tandis que la propriété Value permet de stocker toutes les données supplémentaires relatives à l'élément de menu, telles que les données passées à l'événement de publication (postback) associé à l'élément de menu. Si vous définissez la propriété Text, mais que vous laissez la propriété Value non définie, la propriété Value est définie automatiquement avec la même valeur que la propriété Text. Le contraire est également vrai. Si vous définissez la propriété Value, et non la propriété Text, la propriété Text est définie automatiquement avec la même valeur que la propriété Value.

Remarque :

Les éléments de menu au même niveau de menu doivent avoir chacun une valeur unique pour la propriété Value ; le contrôle Menu ne peut pas faire la distinction entre les différents éléments de menu au même niveau ayant la même valeur. Dans ce scénario, si l'utilisateur clique sur un élément de menu qui a une valeur en double, l'élément de menu qui apparaît en premier dans le menu est sélectionné.

Pour afficher une info-bulle lorsque l'utilisateur positionne le pointeur de la souris sur un élément de menu, définissez la propriété ToolTip de l'élément.

Un contrôle Menu a plusieurs types d'éléments de menu. Vous pouvez contrôler le style (par exemple la taille et la couleur de la police) des différents types d'éléments de menu à l'aide des propriétés du tableau suivant.

Propriété de style d'élément de menu

Description

DynamicHoverStyle

Paramètres de style d'un élément de menu dynamique lorsque le pointeur de la souris est positionné sur lui.

DynamicMenuItemStyle

Paramètres de style d'un élément de menu dynamique.

DynamicMenuStyle

Paramètres de style d'un menu dynamique.

DynamicSelectedStyle

Paramètres de style de l'élément de menu dynamique actuellement sélectionné.

StaticHoverStyle

Paramètres de style d'un élément de menu statique lorsque le pointeur de la souris est positionné sur lui.

StaticMenuItemStyle

Paramètres de style d'un élément de menu statique.

StaticMenuStyle

Paramètres de style d'un menu statique.

StaticSelectedStyle

Paramètres de style de l'élément de menu statique actuellement sélectionné.

Au lieu de définir les propriétés de style, vous pouvez spécifier les styles qui sont appliqués aux éléments de menu en fonction de leur niveau à l'aide des collections de styles affichées dans le tableau suivant.

Collections de styles de niveau

Description

LevelMenuItemStyles

Collection d'objets MenuItemStyle qui contrôlent le style des éléments de menu en fonction de leur niveau.

LevelSelectedStyles

Collection d'objets MenuItemStyle qui contrôlent le style des éléments de menu sélectionnés en fonction de leur niveau.

LevelSubMenuStyles

Collection d'objets MenuItemStyle qui contrôlent le style des éléments de sous-menu en fonction de leur niveau.

Le premier style de la collection correspond au style des éléments de menu au premier niveau de profondeur de l'arborescence du menu. Le deuxième style de la collection correspond au style des éléments de menu au deuxième niveau de profondeur de l'arborescence du menu, et ainsi de suite. Ce mécanisme est le plus souvent utilisé pour générer des menus de navigation de style table des matières où les éléments de menu, à une certaine profondeur, doivent avoir la même apparence, qu'ils aient ou non des sous-menus.

Remarque :

Si vous utilisez l'une des collections de styles de niveau répertoriées dans le tableau précédent pour définir le style du contrôle Menu, ces paramètres de style substituent les propriétés de style de l'élément de menu.

En plus de personnaliser le style d'un élément de menu, vous pouvez également personnaliser son apparence. Vous pouvez spécifier des images personnalisées pour les différentes parties d'un élément de menu en définissant les propriétés dans le tableau suivant.

Propriété d'image

Description

ImageUrl

Image facultative affichée en regard du texte d'un élément de menu.

PopOutImageUrl

Image facultative affichée dans un élément de menu pour indiquer que ce dernier a un sous-menu dynamique.

SeparatorImageUrl

Image facultative affichée en bas d'un élément de menu pour le séparer d'autres éléments de menu.

Pour déterminer si un élément de menu est actuellement sélectionné dans un contrôle Menu, utilisez la propriété Selected. Vous pouvez également déterminer si un élément de menu est lié aux données en utilisant la propriété DataBound. Si un élément de menu est lié aux données, vous pouvez utiliser la propriété DataItem pour accéder aux valeurs de l'élément de données liées à l'élément de menu.

Pour obtenir la liste des valeurs de propriété initiales d'une instance de la classe MenuItem, consultez le constructeur MenuItem.

TopicLocation
Procédure pas à pas : affichage d'un menu sur des pages WebGénération d'applications Web ASP.NET dans Visual Studio
Procédure pas à pas : contrôle des menus ASP.NET par programmeGénération d'applications Web ASP.NET dans Visual Studio
Procédure pas à pas : contrôle des menus ASP.NET par programmeGénération d'applications Web ASP.NET dans Visual Studio
Procédure pas à pas : affichage d'un menu sur des pages WebGénération d'applications à l'aide de Visual Web Developer

L'exemple suivant indique comment remplir un contrôle Menu avec des objets MenuItem statiques à l'aide d'une syntaxe déclarative.


<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>MenuItem Declarative Example</title>
</head>
<body>
    <form id="form1" runat="server">

      <h3>MenuItem Declarative Example</h3>

      <!-- Use declarative syntax to create the   -->
      <!-- menu structure. Create submenu items   -->
      <!-- by nesting them within parent menu     -->
      <!-- items.                                 -->
      <asp:menu id="NavigationMenu"
        staticdisplaylevels="1"
        staticsubmenuindent="10" 
        orientation="Vertical" 
        target="_blank"  
        runat="server">

        <items>
          <asp:menuitem navigateurl="Home.aspx" 
            text="Home"
            imageurl="Images\Home.gif"
            popoutimageurl="Images\Popout.jpg"   
            tooltip="Home">
            <asp:menuitem navigateurl="Music.aspx"
              text="Music"
              popoutimageurl="Images\Popout.jpg"
              tooltip="Music">
              <asp:menuitem navigateurl="Classical.aspx" 
                text="Classical"
                separatorimageurl="Images\Separator.jpg"
                tooltip="Classical"/>
              <asp:menuitem navigateurl="Rock.aspx"
                text="Rock"
                separatorimageurl="Images\Separator.jpg"
                tooltip="Rock"/>
              <asp:menuitem navigateurl="Jazz.aspx"
                text="Jazz"
                separatorimageurl="Images\Separator.jpg"
                tooltip="Jazz"/>
            </asp:menuitem>
            <asp:menuitem navigateurl="Movies.aspx"
              text="Movies"
              popoutimageurl="Images\Popout.jpg"              
              tooltip="Movies">
              <asp:menuitem navigateurl="Action.aspx"
                text="Action"
                separatorimageurl="Images\Separator.jpg"
                tooltip="Action"/>
              <asp:menuitem navigateurl="Drama.aspx"
                text="Drama"
                separatorimageurl="Images\Separator.jpg"
                tooltip="Drama"/>
              <asp:menuitem navigateurl="Musical.aspx"
                text="Musical"
                separatorimageurl="Images\Separator.jpg"
                tooltip="Musical"/>
            </asp:menuitem>
          </asp:menuitem>
        </items>

      </asp:menu>

    </form>
  </body>
</html>



L'exemple suivant indique comment lier un contrôle Menu à un contrôle SiteMapDataSource. Lorsqu'il est lié à une source de données, le contrôle Menu crée automatiquement les objets MenuItem. Pour que cet exemple fonctionne, vous devez copier les données du plan de site ci-dessous dans un fichier nommé Web.sitemap.


<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >

  <!-- For the hover styles of the Menu control to  -->
  <!-- work correctly, you must include this head   -->
  <!-- element.                                     -->
  <head runat="server">
    <title>Menu DataBinding Example</title>
</head>

  <body>
    <form id="form1" runat="server">

      <h3>Menu DataBinding Example</h3>

      <!-- Bind the Menu control to a SiteMapDataSource control.  -->
      <asp:menu id="NavigationMenu"
        disappearafter="2000"
        staticdisplaylevels="2"
        staticsubmenuindent="10" 
        orientation="Vertical"
        font-names="Arial" 
        target="_blank"
        datasourceid="MenuSource"   
        runat="server">

        <staticmenuitemstyle backcolor="LightSteelBlue"
          forecolor="Black"/>
        <statichoverstyle backcolor="LightSkyBlue"/>
        <dynamicmenuitemstyle backcolor="Black"
          forecolor="Silver"/>
        <dynamichoverstyle backcolor="LightSkyBlue"
          forecolor="Black"/>

      </asp:menu>

      <asp:SiteMapDataSource id="MenuSource"
        runat="server"/>        

    </form>
  </body>
</html>



Ceci est un exemple de données de plan de site de l'exemple précédent.

<siteMap>

<siteMapNode url="~\Home.aspx"

title="Home"

description="Home">

<siteMapNode url="~\Music.aspx"

title="Music"

description="Music">

<siteMapNode url="~\Classical.aspx"

title="Classical"

description="Classical"/>

<siteMapNode url="~\Rock.aspx"

title="Rock"

description="Rock"/>

<siteMapNode url="~\Jazz.aspx"

title="Jazz"

description="Jazz"/>

</siteMapNode>

<siteMapNode url="~\Movies.aspx"

title="Movies"

description="Movies">

<siteMapNode url="~\Action.aspx"

title="Action"

description="Action"/>

<siteMapNode url="~\Drama.aspx"

title="Drama"

description="Drama"/>

<siteMapNode url="~\Musical.aspx"

title="Musical"

description="Musical"/>

</siteMapNode>

</siteMapNode>

</siteMap>

System.Object
  System.Web.UI.WebControls.MenuItem

Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professionnel Édition x64, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

.NET Framework

Pris en charge dans : 3.5, 3.0, 2.0

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft