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 メニュー項目にバインドする XML 要素を指定する方法を Menu 示します。 この例を正しく機能させるには、以下のサンプル 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 作成するときは、バインドの条件を指定する必要があります。 条件は、データ項目をメニュー項目にバインドするタイミングを示します。 プロパティ、プロパティ、またはその両方をDataMember指定Depthできます。
データ ソースに複数の要素またはテーブルが含まれている場合は、プロパティを DataMember 使用して、メニュー項目にバインドする要素またはテーブルを指定します。 データ メンバーは、基になるデータ ソース内のデータ項目の種類を指定しますが、データ ソースに応じて異なる情報を表すことができます。 階層データ ソース (オブジェクトによって System.Web.UI.IHierarchyData 表される) 内の各データ項目は、データ項目の種類を IHierarchyData.Type 指定するプロパティを公開します。 たとえば、XML 要素のデータ メンバーは、要素の名前を指定します。 次 MenuItemBinding の宣言は、 <Book>
階層内の XmlDataSource 場所に関係なく、メニュー内のすべてのメニュー項目にコントロールの要素をバインドします。
<asp:MenuItemBinding DataMember="Book" TextField="Title" ValueField= "ISBN">
場合によっては、深度とデータ メンバーの両方を指定するメニュー項目バインドを作成する必要があります。 これは、同じデータ メンバー値を持つ異なるレベルの項目がデータ ソースに含まれている場合によく使用されます。 たとえば、XML ファイル内のさまざまなレベルに表示される要素を含 <Item>
めることができます。 次 MenuItemBinding の宣言は、同一のデータ メンバーに適用されるメニュー項目バインドを異なるメニューの深さで指定する方法を示しています。
<asp:MenuItemBinding DataMember="Item" Depth="1" TextField="Title">
<asp:MenuItemBinding DataMember="Item" Depth="2" TextField="ISBN">
メニュー項目バインドが深度またはデータ メンバーなしで定義されている場合、メニュー項目バインドはメニュー内のすべてのメニュー項目に適用されます。 これは、メニューの深さに関係なく、すべてのデータ項目が同じプロパティを持ち、同じように表示する必要がある場合に一般的に使用されます。
バインド条件が確立されたら、値にバインドできるオブジェクトの MenuItem プロパティをバインドできます。 データ項目のフィールドまたは静的な値にバインドできます。 静的な値にバインドすると、そのオブジェクトがMenuItemBinding適用されるすべてのMenuItemオブジェクトが同じ値を共有します。 フィールドにバインドされたプロパティには、データ ソースのフィールドの値が含まれます。
競合する MenuItemBinding オブジェクトが定義されている場合、コントロールは Menu メニュー項目のバインドを次の優先順位で適用します。
MenuItemBinding深度とデータ メンバーの両方を定義して一致するオブジェクト。
MenuItemBindingデータ メンバーのみを定義し、一致するオブジェクト。
MenuItemBinding深度のみを定義し、一致するオブジェクト。
MenuItemBinding深度もデータ メンバーも定義しないオブジェクト。 (この種類のメニュー項目バインドは、メニュー内のすべてのメニュー項目に適用されます)。
MenuItemBindingデータ ソースに一致するものがないオブジェクト。 この場合、データ項目のメソッドによって
ToString()
返される値は、オブジェクトが適用されるMenuItemBindingメニュー項目のプロパティにValueバインドTextされます。