MenuItemBinding Класс

Определение

Определяет связь между элементом данных и пунктом меню, к которому он привязан, в элементе управления Menu. Этот класс не наследуется.

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
Наследование
MenuItemBinding
Реализации

Примеры

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

Следующий код является примером данных карты сайта для предыдущего примера.

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

Комментарии

Menu Если элемент управления привязан к источнику данных, где каждый элемент данных содержит несколько полей (например, XML-элемент с несколькими атрибутами), если привязки элементов меню не определены, элемент меню отображает значение, возвращаемое методом ToString() элемента данных по умолчанию. В случае XML-элемента в элементе меню отображается имя элемента, которое показывает базовую структуру меню, но в противном случае не очень полезно. Свойства элемента меню можно привязать к определенному полю, указав привязки элементов меню. Объект MenuItemBinding определяет связь между каждым элементом данных и элементом меню, к который он привязывается.

Примечание

Если элемент Menu управления привязан к элементу SiteMapDataSource управления, привязки элементов меню не влияют. Привязка выполняется автоматически с помощью поставщика карты сайта.

Элемент Menu управления сохраняет свои MenuItemBinding объекты в свойстве DataBindings и применяет привязки к источнику данных для создания связи "один к одному" между иерархией меню и иерархией источников данных. Для каждого элемента данных в источнике Menu данных элемент управления пытается сопоставить элемент данных с MenuItemBinding объектом, чтобы создать соответствующий MenuItem объект.

При создании MenuItemBinding объекта необходимо указать критерии привязки. Критерии указывают, когда элемент данных должен быть привязан к элементу меню. Можно указать Depth, или и то, и другое DataMember.

Глубина элемента меню определяет уровень меню, который получает привязку. Например, следующее MenuItemBinding объявление привязывает поля имени и идентификатора источника данных к Text свойствам и Value свойствам всех узлов с глубиной 0:

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

Элемент данных указывает тип элемента данных в базовом источнике данных, но может представлять разные сведения в зависимости от источника данных. Каждый элемент данных в иерархическом источнике данных (представленный IHierarchyData объектом) предоставляет Type свойство, указывающее тип элемента данных. Например, элемент данных для XML-элемента указывает имя элемента. Если источник данных содержит несколько типов элементов данных, элемент данных указывает, какой тип элемента данных следует использовать. MenuItemBinding Следующее объявление привязывает <Book> элементы XmlDataSource элемента управления ко всем пунктам меню в меню независимо от расположения в иерархии:

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

Иногда может потребоваться создать привязку элемента меню, указывающую как глубину, так и элемент данных. Это часто используется, когда источник данных содержит элементы на разных уровнях с одинаковым значением элемента данных. Например, можно иметь <Item> элементы, которые отображаются на разных уровнях в XML-файле. В следующих MenuItemBinding объявлениях показано, как указать привязки элементов меню, которые применяются к идентичным элементам данных в разных глубинах меню:

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

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

Если привязка элемента меню определена без глубины и элемента данных, привязка пункта меню применяется ко всем пунктам меню в меню. Это обычно используется, если все элементы данных имеют одинаковые свойства и должны отображаться одинаково, независимо от глубины меню.

После установки критериев привязки можно привязать свойство MenuItem объекта, которое может быть привязано к значению. Можно привязать к полю элемента данных или к статическому значению. При привязке к статическому значению все MenuItem объекты, к которым MenuItemBinding применяется объект, имеют одно и то же значение. Свойства, привязанные к полям, содержат значения соответствующего поля из источника данных.

Примечание

Вы можете выборочно переопределить связанное свойство в MenuItem объекте, задав соответствующее свойство напрямую.

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

Свойство Описание
ImageUrlField Поле для привязки MenuItem к свойству ImageUrl объекта.
NavigateUrlField Поле для привязки MenuItem к свойству NavigateUrl объекта.
TextField Поле для привязки MenuItem к свойству Text объекта.
ToolTipField Поле для привязки MenuItem к свойству ToolTip объекта.
ValueField Поле для привязки MenuItem к свойству Value объекта.

В следующей таблице перечислены свойства MenuItemBinding класса, позволяющие привязать свойство MenuItem объекта к статическому значению.

Свойство Описание
ImageUrl Статическое значение для привязки к ImageUrl свойство MenuItem объекта.
NavigateUrl Статическое значение для привязки к NavigateUrl свойство MenuItem объекта.
Target Статическое значение для привязки к Target свойство MenuItem объекта.
Text Статическое значение для привязки к Text свойство MenuItem объекта.
ToolTip Статическое значение для привязки к ToolTip свойство MenuItem объекта.
Value Статическое значение для привязки к Value свойство MenuItem объекта.

Если определены конфликтующие MenuItemBinding объекты, Menu элемент управления применяет привязки элементов меню в следующем порядке приоритета:

  1. Объект MenuItemBinding , определяющий и соответствующий глубине и члену данных.

  2. Объект MenuItemBinding , определяющий и соответствующий только элементу данных.

  3. Объект MenuItemBinding , определяющий и соответствующий только глубине.

  4. Объект MenuItemBinding , определяющий ни глубину, ни элемент данных. (Этот тип привязки пункта меню применяется ко всем пунктам меню в меню.)

  5. Объект MenuItemBinding , не соответствующий источнику данных. В этом случае значение, возвращаемое методом ToString() элемента данных, привязывается к Text элементам меню, Value к которым MenuItemBinding применяется объект.

Класс MenuItemBinding также позволяет отформатировать текст, отображаемый в пункте меню, задав FormatString свойство.

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

MenuItemBinding()

Инициализирует новый экземпляр класса MenuItemBinding.

Свойства

DataMember

Получает или задает элемент данных, который необходимо привязать к пункту меню.

Depth

Получает или задает глубину меню, на которой применяется объект MenuItemBinding.

Enabled

Получает или задает значение, показывающее, включен ли пункт меню, к которому применяется объект MenuItemBinding, что позволяет элементу отображать всплывающее изображение и любые дочерние пункты меню.

EnabledField

Получает или задает имя поля из источника данных для привязки к свойству Enabled объекта MenuItem, к которому применяется объект MenuItemBinding.

FormatString

Получает или задает строку, определяющую формат отображения текста пункта меню, к которому применяется объект MenuItemBinding.

ImageUrl

Получает или задает URL-адрес изображения, отображаемого рядом с текстом пункта меню, к которому применяется объект MenuItemBinding.

ImageUrlField

Получает или задает имя поля из источника данных для привязки к свойству ImageUrl объекта MenuItem, к которому применяется объект MenuItemBinding.

NavigateUrl

Получает или задает URL-адрес для перехода после щелчка по пункту меню, к которому применяется объект MenuItemBinding.

NavigateUrlField

Получает или задает имя поля из источника данных для привязки к свойству NavigateUrl объекта MenuItem, к которому применяется объект MenuItemBinding.

PopOutImageUrl

Получает или задает URL-адрес изображения, указывающего на наличие динамического подменю для пункта меню, к которому применяется объект MenuItemBinding.

PopOutImageUrlField

Получает или задает имя поля из источника данных для привязки к свойству PopOutImageUrl объекта MenuItem, к которому применяется объект MenuItemBinding.

Selectable

Получает или задает значение, позволяющее определить, можно ли выбрать пункт меню, к которому применяется объект MenuItemBinding, т.е. является ли он "активным".

SelectableField

Получает или задает имя поля из источника данных для привязки к свойству Selectable объекта MenuItem, к которому применяется объект MenuItemBinding.

SeparatorImageUrl

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

SeparatorImageUrlField

Получает или задает имя поля из источника данных для привязки к свойству SeparatorImageUrl объекта MenuItem, к которому применяется объект MenuItemBinding.

Target

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

TargetField

Получает или задает имя поля из источника данных для привязки к свойству Target объекта MenuItem, к которому применяется объект MenuItemBinding.

Text

Получает или задает текст, отображаемый для пункта меню, к которому применяется объект MenuItemBinding.

TextField

Получает или задает имя поля из источника данных для привязки к свойству Text объекта MenuItem, к которому применяется объект MenuItemBinding.

ToolTip

Получает или задает текст подсказки для пункта меню, к которому применяется объект MenuItemBinding.

ToolTipField

Получает или задает имя поля из источника данных для привязки к свойству ToolTip объекта MenuItem, к которому применяется объект MenuItemBinding.

Value

Получает или задает неотображаемое значение, которое используется для хранения любых дополнительных данных о пункте меню, к которому применяется объект MenuItemBinding, например, данных, которые используются для обработки событий обратной передачи.

ValueField

Получает или задает имя поля из источника данных для привязки к свойству Value объекта MenuItem, к которому применяется объект MenuItemBinding.

Методы

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

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

(Унаследовано от Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.

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

ICloneable.Clone()

Создает копию объекта MenuItemBinding.

IDataSourceViewSchemaAccessor.DataSourceViewSchema

Описание этого члена см. в разделе DataSourceViewSchema.

IStateManager.IsTrackingViewState

Возвращает значение, указывающее, сохраняет ли объект MenuItemBinding изменения в состоянии просмотра.

IStateManager.LoadViewState(Object)

Загружает предварительно сохраненное состояние представления узла.

IStateManager.SaveViewState()

Сохраняет изменения состояния представления в объекте Object.

IStateManager.TrackViewState()

Выдает объекту MenuItemBinding инструкции отслеживать изменения в его состоянии представления.

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

См. также раздел