Поделиться через


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 объявление привязывает поля name и ID источника данных к 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 Статическое значение для привязки MenuItem к ImageUrl свойству объекта.
NavigateUrl Статическое значение для привязки MenuItem к NavigateUrl свойству объекта.
Target Статическое значение для привязки MenuItem к Target свойству объекта.
Text Статическое значение для привязки MenuItem к Text свойству объекта.
ToolTip Статическое значение для привязки MenuItem к ToolTip свойству объекта.
Value Статическое значение для привязки MenuItem к Value свойству объекта.

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

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

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