MenuItemBinding.DataMember Свойство

Определение

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

public:
 property System::String ^ DataMember { System::String ^ get(); void set(System::String ^ value); };
public string DataMember { get; set; }
member this.DataMember : string with get, set
Public Property DataMember As String

Значение свойства

String

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

Примеры

В следующем примере кода показано, как использовать DataMember свойство для указания элемента XML для привязки к элементам меню в элементе Menu управления. Для правильной работы этого примера необходимо скопировать приведенные ниже примеры XML-данных в файл с именем MenuDataMember.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 DataMember Example</title>
</head>
<body>
    <form id="form1" runat="server">

      <h3>MenuItemBinding DataMember Example</h3>

      <asp:menu id="NavigationMenu"
        datasourceid="MenuSource"
        runat="server">
        
        <databindings>
        
          <asp:menuitembinding datamember="MapNodeHome"
            textfield="Title"
            valuefield="Description"
            imageurlfield="ImageUrl"
            tooltipfield="ToolTip"
            target="_self" />
          <asp:menuitembinding datamember="MapNodeCategory"
            textfield="Title"
            valuefield="Description"
            imageurlfield="ImageUrl"
            tooltipfield="ToolTip"
            target="_blank"/>
          <asp:menuitembinding datamember="MapNodeSection"
            textfield="Title"
            valuefield="Description"
            imageurlfield="ImageUrl"
            tooltipfield="ToolTip"
            target="_blank"/>
          
        </databindings>
        
      </asp:menu>

      <asp:xmldatasource id="MenuSource"
        datafile="MenuDataMember.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 DataMember Example</title>
</head>
<body>
    <form id="form1" runat="server">

      <h3>MenuItemBinding DataMember Example</h3>

      <asp:menu id="NavigationMenu"
        datasourceid="MenuSource"
        runat="server">
        
        <databindings>
        
          <asp:menuitembinding datamember="MapNodeHome"
            textfield="Title"
            valuefield="Description"
            imageurlfield="ImageUrl"
            tooltipfield="ToolTip"
            target="_self" />
          <asp:menuitembinding datamember="MapNodeCategory"
            textfield="Title"
            valuefield="Description"
            imageurlfield="ImageUrl"
            tooltipfield="ToolTip"
            target="_blank"/>
          <asp:menuitembinding datamember="MapNodeSection"
            textfield="Title"
            valuefield="Description"
            imageurlfield="ImageUrl"
            tooltipfield="ToolTip"
            target="_blank"/>
          
        </databindings>
        
      </asp:menu>

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

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

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

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

Title="Home"

Description="Root Page"

ToolTip="Home Page">

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

Title="Music"

Description="Music Category"

ToolTip="Music Page">

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

Title="Classical"

Description="Classical Section"

ToolTip="Classical Page"/>

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

Title="Rock"

Description="Rock Section"

ToolTip="Rock Page"/>

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

Title="Jazz"

Description="Jazz Section"

ToolTip="Jazz Page"/>

</MapNodeCategory>

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

Title="Movies"

Description="Movies Category"

ToolTip="Movies Page">

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

Title="Action"

Description="Action Section"

ToolTip="Action Page"/>

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

Title="Drama"

Description="Drama Section"

ToolTip="Drama Page"/>

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

Title="Musical"

Description="Musical Section"

ToolTip="Musical Page"/>

</MapNodeCategory>

</MapNodeHome>

Комментарии

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

Если источник данных содержит несколько элементов или таблиц, используйте DataMember свойство, чтобы указать элемент или таблицу для привязки к элементу меню. Элемент данных указывает тип элемента данных в базовом источнике данных, но может представлять разные сведения в зависимости от источника данных. Каждый элемент данных в иерархическом источнике данных (представленный System.Web.UI.IHierarchyData объектом) предоставляет 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 применяется объект, имеют одно и то же значение. Свойства, привязанные к полям, содержат значения поля из источника данных.

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

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

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

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

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

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

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

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