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


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

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

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