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 メニュー項目にバインドする 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 メニュー項目のバインドを次の優先順位で適用します。

  1. MenuItemBinding深度とデータ メンバーの両方を定義して一致するオブジェクト。

  2. MenuItemBindingデータ メンバーのみを定義し、一致するオブジェクト。

  3. MenuItemBinding深度のみを定義し、一致するオブジェクト。

  4. MenuItemBinding深度もデータ メンバーも定義しないオブジェクト。 (この種類のメニュー項目バインドは、メニュー内のすべてのメニュー項目に適用されます)。

  5. MenuItemBindingデータ ソースに一致するものがないオブジェクト。 この場合、データ項目のメソッドによってToString()返される値は、オブジェクトが適用されるMenuItemBindingメニュー項目のプロパティにValueバインドTextされます。

適用対象

こちらもご覧ください