次の方法で共有


Menu.DataBindings プロパティ

定義

データ項目とそのバインド先のメニュー項目との間の関係を定義する MenuItemBinding オブジェクトのコレクションを取得します。

public:
 property System::Web::UI::WebControls::MenuItemBindingCollection ^ DataBindings { System::Web::UI::WebControls::MenuItemBindingCollection ^ get(); };
[System.Web.UI.PersistenceMode(System.Web.UI.PersistenceMode.InnerProperty)]
public System.Web.UI.WebControls.MenuItemBindingCollection DataBindings { get; }
[<System.Web.UI.PersistenceMode(System.Web.UI.PersistenceMode.InnerProperty)>]
member this.DataBindings : System.Web.UI.WebControls.MenuItemBindingCollection
Public ReadOnly Property DataBindings As MenuItemBindingCollection

プロパティ値

MenuItemBindingCollection

データ項目とそのバインド先のメニュー項目との間の関係を表す MenuItemBindingCollection

属性

次のコード例では、コレクションを使用して、コントロールの DataBindings フィールドとコントロール内のメニュー項目の間の XmlDataSource リレーションシップを定義する方法を Menu 示します。 この例を正しく機能させるには、以下のサンプル XML データを Map.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>Menu DataBindings Example</title>
</head>
<body>
    <form id="form1" runat="server">
    
      <h3>Menu DataBindings Example</h3>
    
      <asp:menu id="NavigationMenu"
        staticdisplaylevels="1"
        staticsubmenuindent="10" 
        orientation="Vertical"
        target="_blank"
        datasourceid="MenuSource"
        runat="server">
        
       <DataBindings>
        
          <asp:menuitembinding datamember="MapHomeNode" 
            depth="0"
            textfield="title" 
            navigateurlfield="url"/>
          <asp:menuitembinding datamember="MapNode" 
            depth="1"
            textfield="title" 
            navigateurlfield="url"/>
          <asp:menuitembinding datamember="MapNode" 
            depth="2"
            textfield="title" 
            navigateurlfield="url"/>
        </DataBindings>
        
      </asp:menu>
      
      <asp:XmlDataSource id="MenuSource"
        datafile="Map.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>Menu DataBindings Example</title>
</head>
<body>
    <form id="form1" runat="server">
    
      <h3>Menu DataBindings Example</h3>
    
      <asp:menu id="NavigationMenu"
        staticdisplaylevels="1"
        staticsubmenuindent="10" 
        orientation="Vertical"
        target="_blank"
        datasourceid="MenuSource"
        runat="server">
        
        <DataBindings>
          <asp:menuitembinding datamember="MapHomeNode" 
            depth="0"
            textfield="title" 
            navigateurlfield="url"/>
          <asp:menuitembinding datamember="MapNode" 
            depth="1"
            textfield="title" 
            navigateurlfield="url"/>
          <asp:menuitembinding datamember="MapNode" 
            depth="2"
            textfield="title" 
            navigateurlfield="url"/>
        </DataBindings>
        
      </asp:menu>
      
      <asp:XmlDataSource id="MenuSource"
        datafile="Map.xml"
        runat="server"/>        

    </form>
  </body>
</html>

前の例のサイト マップ データの例を次に示します。

<MapHomeNode url="~\Home.aspx"   
  title="Home"  
  description="Home">  
  <MapNode url="~\Music.aspx"  
    title="Music"  
    description="Music">  
    <MapNode url="~\Classical.aspx"   
      title="Classical"  
      description="Classical"/>  
    <MapNode url="~\Rock.aspx"  
      title="Rock"  
      description="Rock"/>  
    <MapNode url="~\Jazz.aspx"  
      title="Jazz"  
      description="Jazz"/>  
  </MapNode>  
  <MapNode url="~\Movies.aspx"  
    title="Movies"  
    description="Movies">  
    <MapNode url="~\Action.aspx"  
      title="Action"  
      description="Action"/>  
    <MapNode url="~\Drama.aspx"  
      title="Drama"  
      description="Drama"/>  
    <MapNode url="~\Musical.aspx"  
      title="Musical"  
      description="Musical"/>  
  </MapNode>  
</MapHomeNode>  

注釈

DataBindingsコレクションには、MenuItemBindingデータ項目とバインドするメニュー項目の間のリレーションシップを定義するオブジェクトが含まれています。 各データ項目に複数のプロパティ (複数の属性を持つ XML 要素など) が含まれるデータ ソースにバインドする場合、メニュー項目には、既定でデータ項目のメソッドによって ToString() 返される値が表示されます。 XML 要素の場合、メニュー項目には要素名が表示され、ツリーの基になる構造が表示されますが、それ以外の場合はあまり役に立ちません。 メニュー項目のバインドを指定することで、メニュー項目を特定のデータ項目プロパティにバインドできます。

データ項目とメニュー項目の間のリレーションシップを定義する場合は、バインドの条件とバインドするデータ項目のプロパティの両方を指定する必要があります。 条件は、データ項目をメニュー項目にバインドするタイミングを示します。 抽出条件は、深度、データ メンバー、またはその両方で指定できます。 深度は、バインドされるメニュー レベルを指定します。 たとえば、深さを 0 に指定した場合、レベル 0 のツリー構造のすべてのメニュー項目は、メニュー項目バインドを使用してバインドされます。 データ メンバーは、基になるデータ ソース内のデータ項目の種類を指定しますが、データ ソースに応じて異なる情報を表すことができます。 たとえば、XML 要素のデータ メンバーは、要素の名前を指定します。

互いに競合する複数 MenuItemBinding のオブジェクトが定義されている場合、コントロールは Menu メニュー項目のバインドを次の優先順位で適用します。

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

  2. MenuItemBinding深度のみを定義するオブジェクト。

  3. MenuItemBindingデータ メンバーのみを定義するオブジェクト。

  4. MenuItemBinding深度もデータ メンバーも定義しないオブジェクト。

バインド条件が確立されたら、データ項目の MenuItem 属性またはフィールドにバインドできるオブジェクトのプロパティをバインドできます。 たとえば、メニュー項目のプロパティを Text XML 要素のテキスト属性にバインドするには、オブジェクトのプロパティをTextFieldMenuItemBinding設定します。 静的な値にバインドすることもできます。 オブジェクトのMenuItemBindingプロパティをText設定すると、オブジェクトが適用されるすべてのメニュー項目MenuItemBindingが同じ静的テキスト値を共有します。 オブジェクトのプロパティを値にバインドする方法の MenuItem 詳細については、次を参照してください MenuItemBinding

コレクションは DataBindings プログラムで設定できますが、通常は宣言によって設定されます。 メニュー項目のバインドを指定するには、まず、コントロールの開始タグと終了タグの間に開始タグと終了 <DataBindings> タグを Menu 入れ子にします。 次に、指定するメニュー項目バインドごとに、開始タグと終了<DataBindings>タグの間に要素を配置<asp:MenuItemBinding>します。

適用対象

こちらもご覧ください