MenuItemBinding MenuItemBinding MenuItemBinding MenuItemBinding Class

Определение

Определяет связь между элементом данных и пунктом меню, к которому он привязан, в элементе управления Menu.Defines the relationship between a data item and the menu item it is binding to in a Menu control. Этот класс не наследуется.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
Наследование
MenuItemBindingMenuItemBindingMenuItemBindingMenuItemBinding
Реализации

Примеры

В следующем примере кода показано, как использовать MenuItemBinding объекты для определения связи между полями XmlDataSource элемента управления и элементами меню в 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. Чтобы этот пример работал правильно, необходимо скопировать приведенный ниже образец XML-данных в файл с именем 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>

В следующем примере кода приведен пример данных схемы сайта для предыдущего примера.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>

Комментарии

Если элемент управления привязан к источнику данных, где каждый элемент данных содержит несколько полей (например, XML-элемент с несколькими атрибутами), если привязки элементов меню не определены, то в пункте меню отображается значение, возвращаемое ToString()методом Menu элемент данных по умолчанию.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. В случае XML-элемента элемент меню отображает имя элемента, которое показывает базовую структуру меню, но не очень полезно в противном случае.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. Вы можете привязать свойства пункта меню к конкретному полю, указав привязки пунктов меню.You can bind the properties of a menu item to a specific field by specifying menu item bindings. MenuItemBinding Объект определяет связь между каждым элементом данных и пунктом меню, к которому он привязан.A MenuItemBinding object defines the relationship between each data item and the menu item it is binding to.

Примечание

При привязке SiteMapDataSource элемента управления к элементу управления привязки пунктов меню не оказывают никакого влияния. MenuWhen the Menu control is bound to a SiteMapDataSource control, menu item bindings have no effect. Привязка выполняется автоматически с помощью поставщика карт узла.Binding is performed automatically using the site map provider.

Элемент управления сохраняет свои MenuItemBinding объекты в DataBindings свойстве и применяет привязки к источнику данных для создания связи «один к одному» между иерархией меню и иерархией источников данных. MenuThe 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. Для каждого элемента данных в источнике Menu данных элемент управления пытается сопоставить элемент MenuItemBinding данных с объектом, чтобы создать соответствующий MenuItem объект.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.

При создании MenuItemBinding объекта необходимо указать критерии для привязки.When creating a MenuItemBinding object, you must specify the criteria for binding. Критерий указывает, когда элемент данных должен быть привязан к пункту меню.The criteria indicate when a data item should be bound to a menu item. Можно указать Depth DataMember, или и то, и другое.You can specify the Depth, the DataMember, or both.

Глубина пункта меню определяет уровень меню, на который осуществляется привязка.A menu item depth specifies the menu level that gets bound. Например, следующее MenuItemBinding объявление привязывает поля имени и идентификатора источника данных Text к свойствам и Value соответственно для всех узлов с глубиной 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">  

Элемент данных указывает тип элемента данных в базовом источнике данных, но может представлять различные сведения в зависимости от источника данных.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. Каждый элемент данных в иерархическом источнике данных (представленном IHierarchyData объектом) Type предоставляет свойство, которое указывает тип элемента данных.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. Например, элемент данных для элемента XML указывает имя элемента.For example, the data member for an XML element specifies the name of the element. Если источник данных содержит несколько типов элементов данных, то элемент данных указывает, какой тип элемента данных следует использовать.When a data source contains multiple data item types, the data member specifies which data item type to use. Следующее MenuItemBinding объявление привязывает <Book> элементы XmlDataSource элемента управления ко всем пунктам меню, независимо от расположения в иерархии.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">  

Иногда может потребоваться создать привязку пункта меню, которая задает глубину и элемент данных.Sometimes you might need to create a menu item binding that specifies both a depth and a data member. Это часто используется, когда источник данных содержит элементы на разных уровнях с одинаковым значением элемента данных.This is often used when the data source contains items at different levels that have the same data member value. Например, <Item> элементы могут отображаться на разных уровнях в XML-файле.For example, you can have <Item> elements that appear at different levels within an XML file. В следующих MenuItemBinding объявлениях показано, как указать привязки пунктов меню, которые применяются к идентичным элементам данных в разных глубинах меню.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">

Если привязка пункта меню определена без глубины и элемента данных, то привязка элемента меню применяется ко всем пунктам меню в меню.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. Это часто используется, когда все элементы данных имеют одинаковые свойства и должны отображаться одинаково, независимо от глубины меню.This is commonly used when all data items have the same properties and should be displayed identically, regardless of the menu depth.

После установки критериев привязки можно привязать свойство MenuItem объекта, которое может быть привязано к значению.After the binding criteria are established, you can then bind a property of a MenuItem object that can be bound to a value. Можно выполнить привязку к полю элемента данных или к статическому значению.You can bind to a field of a data item or to a static value. При привязке к статическому значению все MenuItem объекты, к MenuItemBinding которым применяется объект, имеют одинаковое значение.When bound to a static value, all MenuItem objects to which the MenuItemBinding object is applied share the same value. Свойства, привязанные к полям, содержат значения соответствующего поля из источника данных.Properties bound to fields contain the values of the corresponding field from the data source.

Примечание

Можно выборочно переопределить привязанное свойство в MenuItem объекте, задав соответствующее свойство напрямую.You can selectively override a bound property in a MenuItem object by setting the corresponding property directly.

В следующей таблице перечислены свойства MenuItemBinding класса, позволяющие привязать свойство MenuItem объекта к полю элемента данных.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.

Свойство.Property ОписаниеDescription
ImageUrlField Поле для привязки к ImageUrl свойству MenuItem объекта.The field to bind to the ImageUrl property of a MenuItem object.
NavigateUrlField Поле для привязки к NavigateUrl свойству MenuItem объекта.The field to bind to the NavigateUrl property of a MenuItem object.
TextField Поле для привязки к Text свойству MenuItem объекта.The field to bind to the Text property of a MenuItem object.
ToolTipField Поле для привязки к ToolTip свойству MenuItem объекта.The field to bind to the ToolTip property of a MenuItem object.
ValueField Поле для привязки к Value свойству MenuItem объекта.The field to bind to the Value property of a MenuItem object.

В следующей таблице перечислены свойства MenuItemBinding класса, позволяющие привязать свойство MenuItem объекта к статическому значению.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.

Свойство.Property Описание:Description
ImageUrl Статическое значение для привязки к ImageUrl свойство MenuItem объекта.The static value to bind to the ImageUrl property of a MenuItem object.
NavigateUrl Статическое значение для привязки к NavigateUrl свойство MenuItem объекта.The static value to bind to the NavigateUrl property of a MenuItem object.
Target Статическое значение для привязки к Target свойство MenuItem объекта.The static value to bind to the Target property of a MenuItem object.
Text Статическое значение для привязки к Text свойство MenuItem объекта.The static value to bind to the Text property of a MenuItem object.
ToolTip Статическое значение для привязки к ToolTip свойство MenuItem объекта.The static value to bind to the ToolTip property of a MenuItem object.
Value Статическое значение для привязки к Value свойство MenuItem объекта.The static value to bind to the Value property of a MenuItem object.

Если определены конфликтующие MenuItemBinding объекты Menu , элемент управления применяет привязки пунктов меню в следующем порядке приоритета:If conflicting MenuItemBinding objects are defined, the Menu control applies the menu item bindings in the following order of precedence:

  1. MenuItemBinding Объект, который определяет и соответствует глубине и элементу данных.The MenuItemBinding object that defines and matches both a depth and a data member.

  2. MenuItemBinding Объект, определяющий и совпадающий только с элементом данных.The MenuItemBinding object that defines and matches the data member only.

  3. MenuItemBinding Объект, который определяет только глубину и соответствует ей.The MenuItemBinding object that defines and matches the depth only.

  4. MenuItemBinding Объект, который определяет глубину и элемент данных.The MenuItemBinding object that defines neither the depth nor the data member. (Этот тип привязки пункта меню применяется ко всем пунктам меню.)(This type of menu item binding is applied to all menu items in the menu.)

  5. MenuItemBinding Объект, не имеющий соответствия в источнике данных.The MenuItemBinding object that does not have a match in the data source. В этом ToString() случае значение, возвращаемое методом элемента данных, привязывается Text к MenuItemBinding свойствам и Value пунктов меню, к которым применяется объект.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.

Класс также позволяет форматировать текст, отображаемый в пункте меню, путем FormatString задания свойства. MenuItemBindingThe MenuItemBinding class also allows you to format the text displayed in a menu item by setting the FormatString property.

Конструкторы

MenuItemBinding() MenuItemBinding() MenuItemBinding() MenuItemBinding()

Инициализирует новый экземпляр класса MenuItemBinding.Initializes a new instance of the MenuItemBinding class.

Свойства

DataMember DataMember DataMember DataMember

Получает или задает элемент данных, который необходимо привязать к пункту меню.Gets or sets the data member to bind to a menu item.

Depth Depth Depth Depth

Получает или задает глубину меню, на которой применяется объект MenuItemBinding.Gets or sets the menu depth to which the MenuItemBinding object is applied.

Enabled Enabled Enabled Enabled

Получает или задает значение, показывающее, включен ли пункт меню, к которому применяется объект MenuItemBinding, что позволяет элементу отображать всплывающее изображение и любые дочерние пункты меню.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 EnabledField EnabledField EnabledField

Получает или задает имя поля из источника данных для привязки к свойству Enabled объекта MenuItem, к которому применяется объект MenuItemBinding.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 FormatString FormatString FormatString

Получает или задает строку, определяющую формат отображения текста пункта меню, к которому применяется объект MenuItemBinding.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 ImageUrl ImageUrl ImageUrl

Получает или задает URL-адрес изображения, отображаемого рядом с текстом пункта меню, к которому применяется объект MenuItemBinding.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 ImageUrlField ImageUrlField ImageUrlField

Получает или задает имя поля из источника данных для привязки к свойству ImageUrl объекта MenuItem, к которому применяется объект MenuItemBinding.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 NavigateUrl NavigateUrl NavigateUrl

Получает или задает URL-адрес для перехода после щелчка по пункту меню, к которому применяется объект MenuItemBinding.Gets or sets the URL to link to when a menu item to which the MenuItemBinding object is applied is clicked.

NavigateUrlField NavigateUrlField NavigateUrlField NavigateUrlField

Получает или задает имя поля из источника данных для привязки к свойству NavigateUrl объекта MenuItem, к которому применяется объект MenuItemBinding.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 PopOutImageUrl PopOutImageUrl PopOutImageUrl

Получает или задает URL-адрес изображения, указывающего на наличие динамического подменю для пункта меню, к которому применяется объект MenuItemBinding.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 PopOutImageUrlField PopOutImageUrlField PopOutImageUrlField

Получает или задает имя поля из источника данных для привязки к свойству PopOutImageUrl объекта MenuItem, к которому применяется объект MenuItemBinding.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 Selectable Selectable Selectable

Получает или задает значение, позволяющее определить, можно ли выбрать пункт меню, к которому применяется объект MenuItemBinding, т.е. является ли он "активным".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 SelectableField SelectableField SelectableField

Получает или задает имя поля из источника данных для привязки к свойству Selectable объекта MenuItem, к которому применяется объект MenuItemBinding.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 SeparatorImageUrl SeparatorImageUrl SeparatorImageUrl

Получает или задает URL-адрес изображения, отображаемого под текстом пункта меню (чтобы отделить его от других пунктов меню) для пункта меню, к которому применяется объект MenuItemBinding.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 SeparatorImageUrlField SeparatorImageUrlField SeparatorImageUrlField

Получает или задает имя поля из источника данных для привязки к свойству SeparatorImageUrl объекта MenuItem, к которому применяется объект MenuItemBinding.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 Target Target Target

Получает или задает целевое окно или фрейм для отображения содержимого веб-страницы, связанной с пунктом меню, к которому применяется объект MenuItemBinding.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 TargetField TargetField TargetField

Получает или задает имя поля из источника данных для привязки к свойству Target объекта MenuItem, к которому применяется объект MenuItemBinding.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 Text Text Text

Получает или задает текст, отображаемый для пункта меню, к которому применяется объект MenuItemBinding.Gets or sets the text displayed for the menu item to which the MenuItemBinding object is applied.

TextField TextField TextField TextField

Получает или задает имя поля из источника данных для привязки к свойству Text объекта MenuItem, к которому применяется объект MenuItemBinding.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 ToolTip ToolTip ToolTip

Получает или задает текст подсказки для пункта меню, к которому применяется объект MenuItemBinding.Gets or sets the ToolTip text for a menu item to which the MenuItemBinding object is applied.

ToolTipField ToolTipField ToolTipField ToolTipField

Получает или задает имя поля из источника данных для привязки к свойству ToolTip объекта MenuItem, к которому применяется объект MenuItemBinding.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 Value Value Value

Получает или задает неотображаемое значение, которое используется для хранения любых дополнительных данных о пункте меню, к которому применяется объект MenuItemBinding, например, данных, которые используются для обработки событий обратной передачи.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 ValueField ValueField ValueField

Получает или задает имя поля из источника данных для привязки к свойству Value объекта MenuItem, к которому применяется объект MenuItemBinding.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.

Методы

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Определяет, равен ли заданный объект текущему объекту.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Служит хэш-функцией по умолчанию.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

Явные реализации интерфейса

ICloneable.Clone() ICloneable.Clone() ICloneable.Clone() ICloneable.Clone()

Создает копию объекта MenuItemBinding.Creates a copy of the MenuItemBinding object.

IDataSourceViewSchemaAccessor.DataSourceViewSchema IDataSourceViewSchemaAccessor.DataSourceViewSchema IDataSourceViewSchemaAccessor.DataSourceViewSchema IDataSourceViewSchemaAccessor.DataSourceViewSchema

Описание этого члена см. в разделе DataSourceViewSchema.For a description of this member, see DataSourceViewSchema.

IStateManager.IsTrackingViewState IStateManager.IsTrackingViewState IStateManager.IsTrackingViewState IStateManager.IsTrackingViewState

Возвращает значение, указывающее, сохраняет ли объект MenuItemBinding изменения в состоянии просмотра.Gets a value that indicates whether the MenuItemBinding object is saving changes to its view state.

IStateManager.LoadViewState(Object) IStateManager.LoadViewState(Object) IStateManager.LoadViewState(Object) IStateManager.LoadViewState(Object)

Загружает предварительно сохраненное состояние представления узла.Loads the node's previously saved view state.

IStateManager.SaveViewState() IStateManager.SaveViewState() IStateManager.SaveViewState() IStateManager.SaveViewState()

Сохраняет изменения состояния представления в объекте Object.Saves the view state changes to an Object.

IStateManager.TrackViewState() IStateManager.TrackViewState() IStateManager.TrackViewState() IStateManager.TrackViewState()

Выдает объекту MenuItemBinding инструкции отслеживать изменения в его состоянии представления.Instructs the MenuItemBinding object to track changes to its view state.

Применяется к

Дополнительно