MenuItemBinding.DataMember プロパティ

定義

メニュー項目にバインドするデータ メンバーを取得または設定します。Gets or sets the data member to bind to a menu item.

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

メニュー項目にバインドするデータ メンバー。The data member to bind to a menu item. 既定値は空の文字列 ("") です。このプロパティが設定されていないことを示します。The default is an empty string (""), which indicates that this property is not set.

次のコード例は、プロパティを使用して、 DataMember コントロールのメニュー項目にバインドする XML 要素を指定する方法を示して Menu います。The following code example demonstrates how to use the DataMember property to specify which XML element to bind to the menu items in a Menu control. この例を正しく動作させるには、次のサンプル XML データを MenuDataMember.xml という名前のファイルにコピーする必要があります。For this example to work correctly, you must copy the sample XML data below to a file named 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>

次のコードは、前の例のサイトマップデータのサンプルです。The following code is sample site map data for the previous example.

<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 、バインドの条件を指定する必要があります。When creating a MenuItemBinding object, you must specify the criteria for binding. 条件は、データ項目をメニュー項目にバインドするタイミングを示します。The criteria indicate when a data item should be bound to a menu item. プロパティ、プロパティ、 Depth またはその両方を指定でき DataMember ます。You can specify the Depth property, the DataMember property, or both.

データソースに複数の要素またはテーブルが含まれている場合は、プロパティを使用して、 DataMember メニュー項目にバインドする要素またはテーブルを指定します。When the data source contains multiple elements or tables, use the DataMember property to specify the element or table to bind to a menu item. データメンバーは、基になるデータソースのデータ項目の種類を指定しますが、データソースによって異なる情報を表すことができます。A data member specifies the type of the data item in the underlying data source, but can represent different information depending on the data source. 階層データソース内の各データ項目 (オブジェクトによって表さ System.Web.UI.IHierarchyData れます) は、 IHierarchyData.Type データ項目の型を指定するプロパティを公開します。Each data item in a hierarchical data source (represented by a System.Web.UI.IHierarchyData object) exposes a IHierarchyData.Type property, which specifies the type of the data item. たとえば、XML 要素のデータメンバーは、要素の名前を指定します。For example, the data member for an XML element specifies the name of the element. 次の MenuItemBinding 宣言は、 <Book> XmlDataSource 階層内の場所に関係なく、コントロールの要素をメニュー内のすべてのメニュー項目にバインドします。The following MenuItemBinding declaration binds the <Book> elements of an XmlDataSource control to all the menu items in the menu, regardless of the location in the hierarchy:

<asp:MenuItemBinding DataMember="Book" TextField="Title" ValueField= "ISBN">  

場合によっては、深さとデータメンバーの両方を指定するメニュー項目のバインドを作成しなければならないことがあります。Sometimes you might need to create a menu item binding that specifies both a depth and a data member. これは、データソースに、同じデータメンバー値を持つさまざまなレベルのアイテムが含まれている場合によく使用されます。This is often used when the data source contains items at different levels that have the same data member value. たとえば、 <Item> XML ファイル内のさまざまなレベルで表示される要素を含めることができます。For example, you can have <Item> elements that appear at different levels within an XML file. 次の MenuItemBinding 宣言は、異なるメニューの深さで同一のデータメンバーに適用されるメニュー項目のバインドを指定する方法を示しています。The following MenuItemBinding declarations show how to specify menu item bindings that apply to identical data members at different menu depths:

<asp:MenuItemBinding DataMember="Item" Depth="1" TextField="Title">

<asp:MenuItemBinding DataMember="Item" Depth="2" TextField="ISBN">

メニュー項目のバインドが深度またはデータメンバーなしで定義されている場合は、メニュー項目のバインドがメニュー内のすべてのメニュー項目に適用されます。If a menu item binding is defined without a depth or a data member, the menu item binding is applied to all menu items within the menu. これは、すべてのデータ項目が同じプロパティを持ち、メニューの深さに関係なくまったく同じように表示される必要がある場合によく使用されます。This is commonly used when all data items have the same properties and should be displayed identically, regardless of the menu depth.

バインディング条件を確立したら、 MenuItem 値にバインドできるオブジェクトのプロパティをバインドできます。After the binding criteria are established, you can then bind a property of a MenuItem object that can be bound to a value. データ項目のフィールドまたは静的な値にバインドできます。You can bind to a field of a data item or to a static value. 静的な値にバインドされ MenuItem ている場合、 MenuItemBinding オブジェクトが適用されるすべてのオブジェクトが同じ値を共有します。When bound to a static value, all MenuItem objects to which the MenuItemBinding object is applied share the same value. フィールドにバインドされたプロパティには、データソースのフィールドの値が格納されます。Properties bound to fields contain the values of the field from the data source.

競合し MenuItemBinding ているオブジェクトが定義されている場合、 Menu コントロールは次の優先順位でメニュー項目のバインディングを適用します。If conflicting MenuItemBinding objects are defined, the Menu control applies the menu item bindings in the following order of precedence:

  1. MenuItemBinding深さとデータメンバーの両方を定義して一致するオブジェクト。The MenuItemBinding object that defines and matches both a depth and a data member.

  2. MenuItemBindingデータメンバーのみを定義して一致するオブジェクト。The MenuItemBinding object that defines and matches the data member only.

  3. MenuItemBinding深さのみを定義して一致するオブジェクト。The MenuItemBinding object that defines and matches the depth only.

  4. MenuItemBinding深さもデータメンバーも定義しないオブジェクト。The MenuItemBinding object that defines neither the depth nor the data member. (メニュー項目のバインドの種類は、メニューのすべてのメニュー項目に適用されます)。(This type of menu item binding is applied to all menu items in the menu.)

  5. MenuItemBindingデータソース内に一致するオブジェクトがないオブジェクト。The MenuItemBinding object that does not have a match in the data source. この場合、データ項目のメソッドによって返される値は、 ToString() Text Value オブジェクトが適用されるメニュー項目のプロパティとプロパティにバインドされ MenuItemBinding ます。In this case, the value returned by the ToString() method of the data item is then bound to the Text and Value properties of the menu items to which the MenuItemBinding object is applied.

適用対象

こちらもご覧ください