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 属性指定要绑定到控件中的菜单项的 Menu XML 元素。 若要使此示例正常工作,必须将下面的示例 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定义深度和数据成员的对象。 (此类型的菜单项绑定应用于 menu.)

  5. MenuItemBinding数据源中没有匹配的对象。 在这种情况下,数据项方法返回ToString()的值随后将绑定到Text应用对象的菜单项MenuItemBinding的属性Value

适用于

另请参阅