MenuItemBinding.DataMember 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取或设置要绑定到菜单项的数据成员。
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
属性值
要绑定到菜单项的数据成员。 默认值为空字符串 (""),表示尚未设置此属性。
示例
下面的代码示例演示如何使用 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 将按以下优先级顺序应用菜单项绑定:
定义 MenuItemBinding 和匹配深度和数据成员的对象。
MenuItemBinding仅定义和匹配数据成员的对象。
MenuItemBinding定义和匹配深度的对象。
MenuItemBinding定义深度和数据成员的对象。 (此类型的菜单项绑定应用于 menu.)
MenuItemBinding数据源中没有匹配的对象。 在这种情况下,数据项方法返回
ToString()
的值随后将绑定到Text应用对象的菜单项MenuItemBinding的属性Value。