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

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 能够绑定到数据项的属性或字段的对象的属性。 例如,可以通过设置TextField对象的属性将Text菜单项的属性绑定到 XML 元素上的文本属性MenuItemBinding。 还可以绑定到静态值。 如果设置 Text 对象的属性 MenuItemBinding ,则应用对象的所有菜单项 MenuItemBinding 共享相同的静态文本值。 有关将对象属性 MenuItem 绑定到值的详细信息,请参阅 MenuItemBinding

DataBindings虽然集合可以以编程方式填充,但通常以声明方式设置该集合。 若要指定菜单项绑定,请先嵌套控件的开始标记和结束 <DataBindings> 标记之间的开始标记和结束标记 Menu 。 接下来,在要指定的每个菜单项绑定的开始标记和结束<DataBindings>标记之间放置<asp:MenuItemBinding>元素。

适用于

另请参阅