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.Defines the relationship between a data item and the menu item it is binding to in a Menu control. Cette classe ne peut pas être héritée.This class cannot be inherited.

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 des objets MenuItemBinding pour définir la relation entre les champs d’un contrôle XmlDataSource et les éléments de menu d’un contrôle Menu.The following code example demonstrates how to use MenuItemBinding objects to define the relationship between the fields of an XmlDataSource control and the menu items in a Menu control. Pour que cet exemple fonctionne correctement, vous devez copier les exemples de données XML ci-dessous dans un fichier nommé menu. Xml.For this example to work correctly, you must copy the sample XML data below to a file named 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 plan de site pour l’exemple précédent.The following code is sample site map data for the previous example.

<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 contrôle Menu 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 méthode ToString() de l’élément de données par défaut.When the Menu control is bound to a data source where each data item contains multiple fields (such as an XML element with several attributes), if no menu item bindings are defined, a menu item displays the value returned by the ToString() method of the data item by default. 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.In the case of an XML element, the menu item displays the element name, which shows the underlying structure of the menu, but is not very useful otherwise. Vous pouvez lier les propriétés d’un élément de menu à un champ spécifique en spécifiant des liaisons d’élément de menu.You can bind the properties of a menu item to a specific field by specifying menu item bindings. Un objet MenuItemBinding définit la relation entre chaque élément de données et l’élément de menu auquel il est lié.A MenuItemBinding object defines the relationship between each data item and the menu item it is binding to.

Notes

Lorsque le contrôle Menu est lié à un contrôle SiteMapDataSource, les liaisons d’élément de menu n’ont aucun effet.When the Menu control is bound to a SiteMapDataSource control, menu item bindings have no effect. La liaison est effectuée automatiquement à l’aide du fournisseur de plan de site.Binding is performed automatically using the site map provider.

Le contrôle Menu stocke ses objets MenuItemBinding dans la propriété DataBindings 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.The Menu control stores its MenuItemBinding objects in the DataBindings property and applies the bindings to the data source to create a one-to-one relationship between the menu hierarchy and the data source hierarchy. Pour chaque élément de données de la source de données, le contrôle de Menu tente de faire correspondre l’élément de données à un objet MenuItemBinding pour créer l’objet MenuItem correspondant.For each data item in the data source, the Menu control attempts to match the data item to a MenuItemBinding object to create the corresponding MenuItem object.

Lorsque vous créez un objet MenuItemBinding, vous devez spécifier les critères de liaison.When creating a MenuItemBinding object, you must specify the criteria for binding. Les critères indiquent quand un élément de données doit être lié à un élément de menu.The criteria indicate when a data item should be bound to a menu item. Vous pouvez spécifier les Depth, les DataMemberou les deux.You can specify the Depth, the DataMember, or both.

Une profondeur d’élément de menu spécifie le niveau de menu qui est lié.A menu item depth specifies the menu level that gets bound. Par exemple, la déclaration de MenuItemBinding suivante lie les champs Name et ID de la source de données aux propriétés Text et Value, respectivement, de tous les nœuds ayant une profondeur de 0 :For example, the following MenuItemBinding declaration binds the Name and ID fields of the data source to the Text and Value properties, respectively, of all nodes with a depth of 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 des informations différentes en fonction de la source de données.A data member specifies the type of the data item in the underlying data source, but can represent different information depending on the data source. Chaque élément de données d’une source de données hiérarchique (représentée par un objet IHierarchyData) expose une propriété Type, qui spécifie le type de l’élément de données.Each data item in a hierarchical data source (represented by an IHierarchyData object) exposes a Type property, which specifies the type of the data item. Par exemple, le membre de données d’un élément XML spécifie le nom de l’élément.For example, the data member for an XML element specifies the name of the element. Quand 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.When a data source contains multiple data item types, the data member specifies which data item type to use. La déclaration de MenuItemBinding suivante lie les éléments <Book> d’un contrôle XmlDataSource à tous les éléments de menu du menu, quel que soit l’emplacement dans la hiérarchie :The following MenuItemBinding declaration binds the <Book> elements of an XmlDataSource control to all the menu items in the menu, regardless of the location in the hierarchy:

<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.Sometimes you might need to create a menu item binding that specifies both a depth and a data member. 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.This is often used when the data source contains items at different levels that have the same data member value. Par exemple, vous pouvez avoir des éléments de <Item> qui s’affichent à différents niveaux dans un fichier XML.For example, you can have <Item> elements that appear at different levels within an XML file. Les déclarations de MenuItemBinding suivantes montrent comment spécifier des liaisons d’élément de menu qui s’appliquent à des membres de données identiques à différentes profondeurs de menu :The following MenuItemBinding declarations show how to specify menu item bindings that apply to identical data members at different menu depths:

<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 une profondeur et un membre de données, la liaison de l’élément de menu est appliquée à tous les éléments de menu dans le menu.If a menu item binding is defined without a depth and a data member, the menu item binding is applied to all menu items within the menu. Ce nom est couramment utilisé lorsque tous les éléments de données ont les mêmes propriétés et doivent être affichés de la même manière, quelle que soit la profondeur du menu.This is commonly used when all data items have the same properties and should be displayed identically, regardless of the menu depth.

Une fois les critères de liaison établis, vous pouvez lier une propriété d’un objet MenuItem qui peut être lié à une valeur.After the binding criteria are established, you can then bind a property of a MenuItem object that can be bound to a value. Vous pouvez effectuer une liaison à un champ d’un élément de données ou à une valeur statique.You can bind to a field of a data item or to a static value. En cas de liaison à une valeur statique, tous les objets MenuItem auxquels l’objet MenuItemBinding est appliqué partagent la même valeur.When bound to a static value, all MenuItem objects to which the MenuItemBinding object is applied share the same value. Les propriétés liées aux champs contiennent les valeurs du champ correspondant de la source de données.Properties bound to fields contain the values of the corresponding field from the data source.

Notes

Vous pouvez substituer de manière sélective une propriété liée dans un objet MenuItem en définissant directement la propriété correspondante.You can selectively override a bound property in a MenuItem object by setting the corresponding property directly.

Le tableau suivant répertorie les propriétés de la classe MenuItemBinding qui vous permettent de lier une propriété de l’objet MenuItem à un champ d’un élément de données.The following table lists the properties of the MenuItemBinding class that allow you to bind a property of the MenuItem object to a field of a data item.

PropriétéProperty DescriptionDescription
ImageUrlField Champ à lier à la propriété ImageUrl d’un objet MenuItem.The field to bind to the ImageUrl property of a MenuItem object.
NavigateUrlField Champ à lier à la propriété NavigateUrl d’un objet MenuItem.The field to bind to the NavigateUrl property of a MenuItem object.
TextField Champ à lier à la propriété Text d’un objet MenuItem.The field to bind to the Text property of a MenuItem object.
ToolTipField Champ à lier à la propriété ToolTip d’un objet MenuItem.The field to bind to the ToolTip property of a MenuItem object.
ValueField Champ à lier à la propriété Value d’un objet MenuItem.The field to bind to the Value property of a MenuItem object.

Le tableau suivant répertorie les propriétés de la classe MenuItemBinding qui vous permettent de lier une propriété de l’objet MenuItem à une valeur statique.The following table lists the properties of the MenuItemBinding class that allow you to bind a property of the MenuItem object to a static value.

PropriétéProperty DescriptionDescription
ImageUrl Valeur statique à lier à la propriété ImageUrl d’un objet MenuItem.The static value to bind to the ImageUrl property of a MenuItem object.
NavigateUrl Valeur statique à lier à la propriété NavigateUrl d’un objet MenuItem.The static value to bind to the NavigateUrl property of a MenuItem object.
Target Valeur statique à lier à la propriété Target d’un objet MenuItem.The static value to bind to the Target property of a MenuItem object.
Text Valeur statique à lier à la propriété Text d’un objet MenuItem.The static value to bind to the Text property of a MenuItem object.
ToolTip Valeur statique à lier à la propriété ToolTip d’un objet MenuItem.The static value to bind to the ToolTip property of a MenuItem object.
Value Valeur statique à lier à la propriété Value d’un objet MenuItem.The static value to bind to the Value property of a MenuItem object.

Si des objets MenuItemBinding en conflit sont définis, le contrôle Menu applique les liaisons d’élément de menu dans l’ordre de priorité suivant :If conflicting MenuItemBinding objects are defined, the Menu control applies the menu item bindings in the following order of precedence:

  1. Objet MenuItemBinding qui définit et correspond à la fois à une profondeur et à un membre de données.The MenuItemBinding object that defines and matches both a depth and a data member.

  2. Objet MenuItemBinding qui définit et correspond au membre de données uniquement.The MenuItemBinding object that defines and matches the data member only.

  3. Objet MenuItemBinding qui définit et correspond à la profondeur uniquement.The MenuItemBinding object that defines and matches the depth only.

  4. Objet MenuItemBinding qui ne définit ni la profondeur ni la donnée membre.The MenuItemBinding object that defines neither the depth nor the data member. (Ce type de liaison d’élément de menu est appliqué à tous les éléments de menu du menu.)(This type of menu item binding is applied to all menu items in the menu.)

  5. Objet MenuItemBinding qui n’a pas de correspondance dans la source de données.The MenuItemBinding object that does not have a match in the data source. Dans ce cas, la valeur retournée par la méthode ToString() de l’élément de données est ensuite liée au Text et Value propriétés des éléments de menu auxquels l’objet MenuItemBinding est appliqué.In this case, the value returned by the ToString() method of the data item is then bound to the Text and Value properties of the menu items to which the MenuItemBinding object is applied.

La classe MenuItemBinding vous permet également de mettre en forme le texte affiché dans un élément de menu en définissant la propriété FormatString.The MenuItemBinding class also allows you to format the text displayed in a menu item by setting the FormatString property.

Constructeurs

MenuItemBinding()

Initialise une nouvelle instance de la classe MenuItemBinding.Initializes a new instance of the MenuItemBinding class.

Propriétés

DataMember

Obtient ou définit la donnée membre à lier à un élément de menu.Gets or sets the data member to bind to a menu item.

Depth

Obtient ou définit la profondeur de menu à laquelle l'objet MenuItemBinding est appliqué.Gets or sets the menu depth to which the MenuItemBinding object is applied.

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.Gets or sets a value that indicates whether the menu item to which the MenuItemBinding object is applied is enabled, allowing the item to display a pop-out image and any child menu items.

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é.Gets or sets the name of the field from the data source to bind to the Enabled property of a MenuItem object to which the MenuItemBinding object is applied.

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é.Gets or sets the string that specifies the display format for the text of a menu item to which the MenuItemBinding object is applied.

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é.Gets or sets the URL to an image that is displayed next to the text of a menu item to which the MenuItemBinding object is applied.

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é.Gets or sets the name of the field from the data source to bind to the ImageUrl property of a MenuItem object to which the MenuItemBinding object is applied.

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é.Gets or sets the URL to link to when a menu item to which the MenuItemBinding object is applied is clicked.

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é.Gets or sets the name of the field from the data source to bind to the NavigateUrl property of a MenuItem object to which the MenuItemBinding object is applied.

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é.Gets or sets the URL to an image that indicates the presence of a dynamic submenu for a menu item to which the MenuItemBinding object is applied.

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é.Gets or sets the name of the field from the data source to bind to the PopOutImageUrl property of a MenuItem object to which the MenuItemBinding object is applied.

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 ».Gets or sets a value that indicates whether the menu item to which the MenuItemBinding object is applied can be selected, or is "clickable."

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é.Gets or sets the name of the field from the data source to bind to the Selectable property of a MenuItem object to which the MenuItemBinding object is applied.

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é.Gets or sets the URL to an image displayed below the text of a menu item (to separate it from other menu items) for a menu item to which the MenuItemBinding object is applied.

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é.Gets or sets the name of the field from the data source to bind to the SeparatorImageUrl property of a MenuItem object to which the MenuItemBinding object is applied.

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é.Gets or sets the target window or frame in which to display the Web page content associated with a menu item to which the MenuItemBinding object is applied.

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é.Gets or sets the name of the field from the data source to bind to the Target property of a MenuItem object to which the MenuItemBinding object is applied.

Text

Obtient ou définit le texte affiché de l'élément de menu auquel l'objet MenuItemBinding est appliqué.Gets or sets the text displayed for the menu item to which the MenuItemBinding object is applied.

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é.Gets or sets the name of the field from the data source to bind to the Text property of a MenuItem object to which the MenuItemBinding object is applied.

ToolTip

Obtient ou définit le texte info-bulle d'un l'élément de menu auquel l'objet MenuItemBinding est appliqué.Gets or sets the ToolTip text for a menu item to which the MenuItemBinding object is applied.

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é.Gets or sets the name of the field from the data source to bind to the ToolTip property of a MenuItem object to which the MenuItemBinding object is applied.

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).Gets or sets a nondisplayed value used to store any additional data about a menu item to which the MenuItemBinding object is applied, such as data used for handling postback events.

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é.Gets or sets the name of the field from the data source to bind to the Value property of a MenuItem object to which the MenuItemBinding object is applied.

Méthodes

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.Determines whether the specified object is equal to the current object.

(Hérité de Object)
GetHashCode()

Sert de fonction de hachage par défaut.Serves as the default hash function.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.Gets the Type of the current instance.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.Creates a shallow copy of the current Object.

(Hérité de Object)
ToString()

Retourne une chaîne qui représente l'objet actif.Returns a string that represents the current object.

Implémentations d’interfaces explicites

ICloneable.Clone()

Crée une copie de l'objet MenuItemBinding.Creates a copy of the MenuItemBinding object.

IDataSourceViewSchemaAccessor.DataSourceViewSchema

Pour obtenir une description de ce membre, consultez DataSourceViewSchema.For a description of this member, see DataSourceViewSchema.

IStateManager.IsTrackingViewState

Obtient une valeur qui indique si l'objet MenuItemBinding enregistre les modifications apportées à son état d'affichage.Gets a value that indicates whether the MenuItemBinding object is saving changes to its view state.

IStateManager.LoadViewState(Object)

Charge l'état d'affichage précédemment enregistré du nœud.Loads the node's previously saved view state.

IStateManager.SaveViewState()

Enregistre les modifications d'état d'affichage apportées à un Object.Saves the view state changes to an Object.

IStateManager.TrackViewState()

Demande à l’objet MenuItemBinding d'assurer le suivi des modifications apportées à son état d'affichage.Instructs the MenuItemBinding object to track changes to its view state.

S’applique à

Voir aussi