Partager via


MenuItemBinding Classe

Définition

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. Cette classe ne peut pas être héritée.

public ref class MenuItemBinding sealed : ICloneable, System::Web::UI::IDataSourceViewSchemaAccessor, System::Web::UI::IStateManager
public sealed class MenuItemBinding : ICloneable, System.Web.UI.IDataSourceViewSchemaAccessor, System.Web.UI.IStateManager
type MenuItemBinding = class
    interface IStateManager
    interface ICloneable
    interface IDataSourceViewSchemaAccessor
Public NotInheritable Class MenuItemBinding
Implements ICloneable, IDataSourceViewSchemaAccessor, IStateManager
Héritage
MenuItemBinding
Implémente

Exemples

L’exemple de code suivant montre comment utiliser MenuItemBinding des objets pour définir la relation entre les champs d’un XmlDataSource contrôle et les éléments de menu d’un Menu contrôle. Pour que cet exemple fonctionne correctement, vous devez copier les exemples de données XML ci-dessous dans un fichier nommé Menu.xml.


<%@ 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>MenuItemBinding Example</title>
</head>
<body>
    <form id="form1" runat="server">

      <h3>MenuItemBinding Example</h3>

      <asp:menu id="NavigationMenu"
        datasourceid="MenuSource"
        runat="server">
        
        <DataBindings>
        
          <asp:menuitembinding datamember="MapHomeNode"
            formatstring="({0})" 
            textfield="Title"
            valuefield="Description"
            imageurlfield="ImageUrl"
            tooltipfield="ToolTip"
            target="_self" />
          <asp:menuitembinding datamember="MapNode" 
            depth="1"
            formatstring="[{0}]" 
            textfield="Title"
            valuefield="Description"
            imageurlfield="ImageUrl"
            tooltipfield="ToolTip"
            target="_blank"/>
          <asp:menuitembinding datamember="MapNode" 
            depth="2"
            formatstring="<{0}>" 
            textfield="Title"
            valuefield="Description"
            imageurlfield="ImageUrl"
            tooltipfield="ToolTip"
            target="_blank"/>
          
        </DataBindings>
        
      </asp:menu>

      <asp:xmldatasource id="MenuSource"
        datafile="Menu.xml"
        runat="server"/> 

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

<%@ page language="VB" %>

<!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>MenuItemBinding Example</title>
</head>
<body>
    <form id="form1" runat="server">

      <h3>MenuItemBinding Example</h3>

      <asp:menu id="NavigationMenu"
        datasourceid="MenuSource"
        runat="server">
        
        <DataBindings>
        
          <asp:menuitembinding datamember="MapHomeNode"
            formatstring="({0})" 
            textfield="Title"
            valuefield="Description"
            imageurlfield="ImageUrl"
            tooltipfield="ToolTip"
            target="_self" />
          <asp:menuitembinding datamember="MapNode" 
            depth="1"
            formatstring="[{0}]" 
            textfield="Title"
            valuefield="Description"
            imageurlfield="ImageUrl"
            tooltipfield="ToolTip"
            target="_blank"/>
          <asp:menuitembinding datamember="MapNode" 
            depth="2"
            formatstring="<{0}>" 
            textfield="Title"
            valuefield="Description"
            imageurlfield="ImageUrl"
            tooltipfield="ToolTip"
            target="_blank"/>
          
        </DataBindings>
        
      </asp:menu>

      <asp:xmldatasource id="MenuSource"
        datafile="Menu.xml"
        runat="server"/> 

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

Le code suivant est un exemple de données de carte de site pour l’exemple précédent.

<MapHomeNode ImageUrl="~\Images\Home.gif"

Title="Home"

Description="Root Page"

ToolTip="Home Page">

<MapNode ImageUrl="~\Images\Music.gif"

Title="Music"

Description="Music Category"

ToolTip="Music Page">

<MapNode ImageUrl="~\Images\Classical.gif"

Title="Classical"

Description="Classical Section"

ToolTip="Classical Page"/>

<MapNode ImageUrl="~\Images\Rock.gif"

Title="Rock"

Description="Rock Section"

ToolTip="Rock Page"/>

<MapNode ImageUrl="~\Images\Jazz.gif"

Title="Jazz"

Description="Jazz Section"

ToolTip="Jazz Page"/>

</MapNode>

<MapNode ImageUrl="~\Images\Movies.gif"

Title="Movies"

Description="Movies Category"

ToolTip="Movies Page">

<MapNode ImageUrl="~\Images\Action.gif"

Title="Action"

Description="Action Section"

ToolTip="Action Page"/>

<MapNode ImageUrl="~\Images\Drama.gif"

Title="Drama"

Description="Drama Section"

ToolTip="Drama Page"/>

<MapNode ImageUrl="~\Images\Musical.gif"

Title="Musical"

Description="Musical Section"

ToolTip="Musical Page"/>

</MapNode>

</MapHomeNode>

Remarques

Lorsque le Menu contrôle est lié à une source de données où chaque élément de données contient plusieurs champs (par exemple, un élément XML avec plusieurs attributs), si aucune liaison d’élément de menu n’est définie, un élément de menu affiche la valeur retournée par la ToString() méthode de l’élément de données par défaut. Dans le cas d’un élément XML, l’élément de menu affiche le nom de l’élément, qui affiche la structure sous-jacente du menu, mais n’est pas très utile dans le cas contraire. Vous pouvez lier les propriétés d’un élément de menu à un champ spécifique en spécifiant des liaisons d’éléments de menu. Un MenuItemBinding objet définit la relation entre chaque élément de données et l’élément de menu auquel il est associé.

Notes

Lorsque le Menu contrôle est lié à un SiteMapDataSource contrôle, les liaisons d’éléments de menu n’ont aucun effet. La liaison est effectuée automatiquement à l’aide du fournisseur de plan de site.

Le Menu contrôle stocke ses MenuItemBinding objets dans la DataBindings propriété et applique les liaisons à la source de données pour créer une relation un-à-un entre la hiérarchie de menus et la hiérarchie de source de données. Pour chaque élément de données de la source de données, le Menu contrôle tente de faire correspondre l’élément de données à un MenuItemBinding objet pour créer l’objet correspondant MenuItem .

Lors de la création d’un MenuItemBinding objet, vous devez spécifier les critères de liaison. Les critères indiquent quand un élément de données doit être lié à un élément de menu. Vous pouvez spécifier le Depth, le ou les DataMemberdeux.

Une profondeur d’élément de menu spécifie le niveau de menu qui est lié. Par exemple, la déclaration suivante MenuItemBinding lie les champs Nom et ID de la source de données aux Text propriétés et Value aux propriétés, respectivement, de tous les nœuds avec une profondeur de 0 :

<asp:MenuItemBinding Depth="0" TextField="Name" ValueField="ID">  

Un membre de données spécifie le type de l’élément de données dans la source de données sous-jacente, mais peut représenter différentes informations en fonction de la source de données. Chaque élément de données d’une source de données hiérarchique (représentée par un IHierarchyData objet) expose une Type propriété, qui spécifie le type de l’élément de données. Par exemple, le membre de données d’un élément XML spécifie le nom de l’élément. Lorsqu’une source de données contient plusieurs types d’éléments de données, le membre de données spécifie le type d’élément de données à utiliser. La déclaration suivante MenuItemBinding lie les <Book> éléments d’un XmlDataSource contrôle à tous les éléments de menu du menu, quel que soit l’emplacement de la hiérarchie :

<asp:MenuItemBinding DataMember="Book" TextField="Title" ValueField= "ISBN">  

Parfois, vous devrez peut-être créer une liaison d’élément de menu qui spécifie à la fois une profondeur et un membre de données. Cela est souvent utilisé lorsque la source de données contient des éléments à différents niveaux qui ont la même valeur de membre de données. Par exemple, vous pouvez avoir <Item> des éléments qui apparaissent à différents niveaux au sein d’un fichier XML. Les déclarations suivantes MenuItemBinding montrent comment spécifier des liaisons d’éléments de menu qui s’appliquent aux membres de données identiques à différentes profondeurs de menu :

<asp:MenuItemBinding DataMember="Item" Depth="1" TextField="Title">

<asp:MenuItemBinding DataMember="Item" Depth="2" TextField="ISBN">

Si une liaison d’élément de menu est définie sans profondeur et qu’un membre de données, la liaison d’élément de menu est appliquée à tous les éléments de menu du menu. Cela est couramment utilisé lorsque tous les éléments de données ont les mêmes propriétés et doivent être affichés de manière identique, quelle que soit la profondeur du menu.

Une fois les critères de liaison établis, vous pouvez lier une propriété d’un MenuItem objet pouvant être liée à une valeur. Vous pouvez lier un champ d’un élément de données ou à une valeur statique. Lorsqu’il est lié à une valeur statique, tous les MenuItem objets auxquels l’objet MenuItemBinding est appliqué partagent la même valeur. Les propriétés liées aux champs contiennent les valeurs du champ correspondant de la source de données.

Notes

Vous pouvez remplacer de manière sélective une propriété liée dans un MenuItem objet en définissant directement la propriété correspondante.

Le tableau suivant répertorie les propriétés de la MenuItemBinding classe qui vous permettent de lier une propriété de l’objet MenuItem à un champ d’un élément de données.

Propriété Description
ImageUrlField Champ à lier à la ImageUrl propriété d’un MenuItem objet.
NavigateUrlField Champ à lier à la NavigateUrl propriété d’un MenuItem objet.
TextField Champ à lier à la Text propriété d’un MenuItem objet.
ToolTipField Champ à lier à la ToolTip propriété d’un MenuItem objet.
ValueField Champ à lier à la Value propriété d’un MenuItem objet.

Le tableau suivant répertorie les propriétés de la MenuItemBinding classe qui vous permettent de lier une propriété de l’objet MenuItem à une valeur statique.

Propriété Description
ImageUrl Valeur statique à lier à la ImageUrl propriété d’un MenuItem objet.
NavigateUrl Valeur statique à lier à la NavigateUrl propriété d’un MenuItem objet.
Target Valeur statique à lier à la Target propriété d’un MenuItem objet.
Text Valeur statique à lier à la Text propriété d’un MenuItem objet.
ToolTip Valeur statique à lier à la ToolTip propriété d’un MenuItem objet.
Value Valeur statique à lier à la Value propriété d’un MenuItem objet.

Si des MenuItemBinding objets en conflit sont définis, le Menu contrôle applique les liaisons d’éléments de menu dans l’ordre de priorité suivant :

  1. Objet MenuItemBinding qui définit et correspond à la fois à une profondeur et à un membre de données.

  2. Objet MenuItemBinding qui définit et correspond uniquement au membre de données.

  3. Objet MenuItemBinding qui définit et correspond uniquement à la profondeur.

  4. Objet MenuItemBinding qui ne définit ni la profondeur ni le membre de données. (Ce type de liaison d’élément de menu est appliqué à tous les éléments de menu du menu.)

  5. Objet MenuItemBinding qui n’a pas de correspondance dans la source de données. Dans ce cas, la valeur retournée par la ToString() méthode de l’élément de données est ensuite liée aux propriétés et Value aux Text propriétés des éléments de menu auxquels l’objet MenuItemBinding est appliqué.

La MenuItemBinding classe vous permet également de mettre en forme le texte affiché dans un élément de menu en définissant la FormatString propriété.

Constructeurs

MenuItemBinding()

Initialise une nouvelle instance de la classe MenuItemBinding.

Propriétés

DataMember

Obtient ou définit la donnée membre à lier à un élément de menu.

Depth

Obtient ou définit la profondeur de menu à laquelle l'objet MenuItemBinding est appliqué.

Enabled

Obtient ou définit une valeur qui indique si l'élément de menu auquel l'objet MenuItemBinding est appliqué est activé, ce qui permet à l'élément d'afficher une image contextuelle et tous les éléments de menu enfants.

EnabledField

Obtient ou définit le nom du champ de la source de données à lier à la propriété Enabled d'un objet MenuItem auquel l'objet MenuItemBinding est appliqué.

FormatString

Obtient ou définit la chaîne qui spécifie le format d'affichage du texte d'un élément de menu auquel l'objet MenuItemBinding est appliqué.

ImageUrl

Obtient ou définit l'URL d'une image qui est affichée près du texte d'un élément de menu auquel l'objet MenuItemBinding est appliqué.

ImageUrlField

Obtient ou définit le nom du champ de la source de données à lier à la propriété ImageUrl d'un objet MenuItem auquel l'objet MenuItemBinding est appliqué.

NavigateUrl

Obtient ou définit l'URL vers laquelle effectuer le lien lorsqu'un clic est effectué sur un élément de menu auquel l'objet MenuItemBinding est appliqué.

NavigateUrlField

Obtient ou définit le nom du champ de la source de données à lier à la propriété NavigateUrl d'un objet MenuItem auquel l'objet MenuItemBinding est appliqué.

PopOutImageUrl

Obtient ou définit l'URL d'une image qui indique la présence d'un sous-menu dynamique pour un élément de menu auquel l'objet MenuItemBinding est appliqué.

PopOutImageUrlField

Obtient ou définit le nom du champ de la source de données à lier à la propriété PopOutImageUrl d'un objet MenuItem auquel l'objet MenuItemBinding est appliqué.

Selectable

Obtient ou définit une valeur qui indique si l'élément de menu auquel l'objet MenuItemBinding est appliqué peut être sélectionné, ou s'il est « interactif ».

SelectableField

Obtient ou définit le nom du champ de la source de données à lier à la propriété Selectable d'un objet MenuItem auquel l'objet MenuItemBinding est appliqué.

SeparatorImageUrl

Obtient ou définit l'URL d'une image affichée au-dessous du texte d'un élément de menu (pour le séparer d'autres éléments de menu) pour un élément de menu auquel l'objet MenuItemBinding est appliqué.

SeparatorImageUrlField

Obtient ou définit le nom du champ de la source de données à lier à la propriété SeparatorImageUrl d'un objet MenuItem auquel l'objet MenuItemBinding est appliqué.

Target

Obtient ou définit la fenêtre ou frame cible dans lequel afficher le contenu de la page Web associée à un élément de menu auquel l'objet MenuItemBinding est appliqué.

TargetField

Obtient ou définit le nom du champ de la source de données à lier à la propriété Target d'un objet MenuItem auquel l'objet MenuItemBinding est appliqué.

Text

Obtient ou définit le texte affiché de l'élément de menu auquel l'objet MenuItemBinding est appliqué.

TextField

Obtient ou définit le nom du champ de la source de données à lier à la propriété Text d'un objet MenuItem auquel l'objet MenuItemBinding est appliqué.

ToolTip

Obtient ou définit le texte info-bulle d'un l'élément de menu auquel l'objet MenuItemBinding est appliqué.

ToolTipField

Obtient ou définit le nom du champ de la source de données à lier à la propriété ToolTip d'un objet MenuItem auquel l'objet MenuItemBinding est appliqué.

Value

Obtient ou définit une valeur non affichée utilisée pour stocker des données supplémentaires relatives à un élément de menu auquel l'objet MenuItemBinding est appliqué, telles que les données utilisées pour gérer les événements de publication (postback).

ValueField

Obtient ou définit le nom du champ de la source de données à lier à la propriété Value d'un objet MenuItem auquel l'objet MenuItemBinding est appliqué.

Méthodes

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ToString()

Retourne une chaîne qui représente l'objet actuel.

Implémentations d’interfaces explicites

ICloneable.Clone()

Crée une copie de l'objet MenuItemBinding.

IDataSourceViewSchemaAccessor.DataSourceViewSchema

Pour obtenir une description de ce membre, consultez DataSourceViewSchema.

IStateManager.IsTrackingViewState

Obtient une valeur qui indique si l'objet MenuItemBinding enregistre les modifications apportées à son état d'affichage.

IStateManager.LoadViewState(Object)

Charge l'état d'affichage précédemment enregistré du nœud.

IStateManager.SaveViewState()

Enregistre les modifications d'état d'affichage apportées à un Object.

IStateManager.TrackViewState()

Demande à l’objet MenuItemBinding d'assurer le suivi des modifications apportées à son état d'affichage.

S’applique à

Voir aussi