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


Menu.DataBindings Свойство

Определение

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

public:
 property System::Web::UI::WebControls::MenuItemBindingCollection ^ DataBindings { System::Web::UI::WebControls::MenuItemBindingCollection ^ get(); };
[System.Web.UI.PersistenceMode(System.Web.UI.PersistenceMode.InnerProperty)]
public System.Web.UI.WebControls.MenuItemBindingCollection DataBindings { get; }
[<System.Web.UI.PersistenceMode(System.Web.UI.PersistenceMode.InnerProperty)>]
member this.DataBindings : System.Web.UI.WebControls.MenuItemBindingCollection
Public ReadOnly Property DataBindings As MenuItemBindingCollection

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

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

Атрибуты

Примеры

В следующем примере кода показано, как использовать коллекцию DataBindings для определения связи между полями XmlDataSource элемента управления и элементами меню в элементе Menu управления . Чтобы этот пример работал правильно, необходимо скопировать приведенный ниже пример XML-данных в файл с именем Map.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>Menu DataBindings Example</title>
</head>
<body>
    <form id="form1" runat="server">
    
      <h3>Menu DataBindings Example</h3>
    
      <asp:menu id="NavigationMenu"
        staticdisplaylevels="1"
        staticsubmenuindent="10" 
        orientation="Vertical"
        target="_blank"
        datasourceid="MenuSource"
        runat="server">
        
       <DataBindings>
        
          <asp:menuitembinding datamember="MapHomeNode" 
            depth="0"
            textfield="title" 
            navigateurlfield="url"/>
          <asp:menuitembinding datamember="MapNode" 
            depth="1"
            textfield="title" 
            navigateurlfield="url"/>
          <asp:menuitembinding datamember="MapNode" 
            depth="2"
            textfield="title" 
            navigateurlfield="url"/>
        </DataBindings>
        
      </asp:menu>
      
      <asp:XmlDataSource id="MenuSource"
        datafile="Map.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>Menu DataBindings Example</title>
</head>
<body>
    <form id="form1" runat="server">
    
      <h3>Menu DataBindings Example</h3>
    
      <asp:menu id="NavigationMenu"
        staticdisplaylevels="1"
        staticsubmenuindent="10" 
        orientation="Vertical"
        target="_blank"
        datasourceid="MenuSource"
        runat="server">
        
        <DataBindings>
          <asp:menuitembinding datamember="MapHomeNode" 
            depth="0"
            textfield="title" 
            navigateurlfield="url"/>
          <asp:menuitembinding datamember="MapNode" 
            depth="1"
            textfield="title" 
            navigateurlfield="url"/>
          <asp:menuitembinding datamember="MapNode" 
            depth="2"
            textfield="title" 
            navigateurlfield="url"/>
        </DataBindings>
        
      </asp:menu>
      
      <asp:XmlDataSource id="MenuSource"
        datafile="Map.xml"
        runat="server"/>        

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

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

<MapHomeNode url="~\Home.aspx"
  title="Home"
  description="Home">
  <MapNode url="~\Music.aspx"
    title="Music"
    description="Music">
    <MapNode url="~\Classical.aspx"
      title="Classical"
      description="Classical"/>
    <MapNode url="~\Rock.aspx"
      title="Rock"
      description="Rock"/>
    <MapNode url="~\Jazz.aspx"
      title="Jazz"
      description="Jazz"/>
  </MapNode>
  <MapNode url="~\Movies.aspx"
    title="Movies"
    description="Movies">
    <MapNode url="~\Action.aspx"
      title="Action"
      description="Action"/>
    <MapNode url="~\Drama.aspx"
      title="Drama"
      description="Drama"/>
    <MapNode url="~\Musical.aspx"
      title="Musical"
      description="Musical"/>
  </MapNode>
</MapHomeNode>

Комментарии

Коллекция DataBindings содержит MenuItemBinding объекты, определяющие связь между элементом данных и элементом меню, к которому он привязан. При привязке к источнику данных, где каждый элемент данных содержит несколько свойств (например, XML-элемент с несколькими атрибутами), элемент меню отображает значение, возвращаемое методом ToString() элемента данных по умолчанию. В случае xml-элемента в пункте меню отображается имя элемента, которое показывает базовую структуру дерева, но в противном случае это не очень полезно. Элемент меню можно привязать к определенному свойству элемента данных, указав привязки элементов меню.

При определении связи между элементом данных и элементом меню необходимо указать критерии привязки и свойство элемента данных, к которым выполняется привязка. Критерии указывают, когда элемент данных должен быть привязан к элементу меню. Критерии можно указать с помощью глубины, элемента данных или и того, и другого. Глубина задает уровень меню, который становится привязанным. Например, если указать глубину 0, все пункты меню в древовидной структуре на уровне 0 будут привязаны с помощью привязки элемента меню. Элемент данных определяет тип элемента данных в базовом источнике данных, но может представлять различные сведения в зависимости от источника данных. Например, элемент данных для XML-элемента указывает имя элемента .

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

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

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

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

  4. Объект MenuItemBinding , который не определяет ни глубину, ни элемент данных.

После установки критериев привязки можно привязать свойство MenuItem объекта, которое может быть привязано к атрибуту или полю элемента данных. Например, можно привязать Text свойство элемента меню к атрибуту text в XML-элементе TextField , задав свойство MenuItemBinding объекта . Также можно привязать к статическому значению. Если задать Text свойство MenuItemBinding объекта, все пункты меню, к которым MenuItemBinding применяется объект, имеют одно и то же статическое текстовое значение. Дополнительные сведения о привязке свойств MenuItem объекта к значению см. в разделе MenuItemBinding.

DataBindings Хотя коллекция может быть заполнена программным способом, обычно она устанавливается декларативно. Чтобы указать привязки элементов меню, сначала вложить открывающие и закрывающие <DataBindings> теги между открывающим и закрывающим тегами Menu элемента управления. Затем поместите <asp:MenuItemBinding> элементы между открывающим и закрывающим <DataBindings> тегами для каждой привязки пункта меню, которую вы хотите указать.

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

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