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 屬性。