Menu.DataBindings プロパティ
アセンブリ: System.Web (system.web.dll 内)

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

DataBindings コレクションには、データ項目とそのバインド先のメニュー項目との間の関係を定義する MenuItemBinding オブジェクトが含まれています。複数の属性を持つ XML 要素などのように、各データ項目に複数のプロパティが含まれているデータ ソースにバインドする場合、メニュー項目にはデータ項目の ToString() メソッドから返される値が既定で表示されます。XML 要素の場合、メニュー項目には要素名が表示されます。これはメニュー ツリーの基になる構造体を示す以外はあまり用途はありません。メニュー項目は、メニュー項目のバインディングを指定して、特定のデータ項目のプロパティにバインドできます。
データ項目とメニュー項目の関係を定義するときは、バインディングの基準とバインド先のデータ項目のプロパティの両方を指定する必要があります。基準は、データ項目をメニュー項目にバインドするタイミングを示します。基準は、深さ、データ メンバ、またはその両方で指定できます。深さはバインドされるメニュー レベルを指定します。たとえば、深さに 0 を指定すると、ツリー構造のレベル 0 にあるすべてのメニュー項目が、メニュー項目のバインディングを使用してバインドされます。データ メンバは、基になるデータ ソースのデータ項目の型を指定します。ただし、データ ソースによっては異なる情報を表している場合があります。たとえば、XML 要素のデータ メンバは、要素名を指定します。
互いに競合する複数の MenuItemBinding オブジェクトが定義されている場合は、Menu コントロールは次の優先順位でメニュー項目のバインディングを適用します。
バインディング基準が確立されたら、バインドできる MenuItem オブジェクトのプロパティをデータ項目の属性またはフィールドにバインドできます。たとえば、MenuItemBinding オブジェクトの TextField プロパティを設定して、メニュー項目の Text プロパティを XML 要素の text 属性にバインドできます。静的な値にバインドすることもできます。MenuItemBinding オブジェクトの Text プロパティを設定すると、MenuItemBinding オブジェクトが適用されるメニュー項目はすべて、同じ静的テキスト値を共有します。MenuItem オブジェクトのプロパティを値にバインドする方法の詳細については、「MenuItemBinding」を参照してください。
DataBindings コレクションはプログラムにより設定できますが、通常は宣言によって設定されます。メニュー項目のバインディングを指定するには、まず Menu コントロールの開始タグと終了タグの間に <DataBindings> の開始タグと終了タグを入れ子します。次に、指定するメニュー項目のバインディングごとに、<DataBindings> の開始タグと終了タグの間に <asp:MenuItemBinding> 要素を入れます。

DataBindings コレクションを使用して、XmlDataSource コントロールのフィールドと Menu コントロールのメニュー項目の間の関係を定義する方法のコード例を次に示します。この例を正常に動作させるには、以下のサンプル XML データを、Map.xml という名前のファイルにコピーする必要があります。
<%@ Page Language="VB" %> <html> <body> <form 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="C#" %> <html> <body> <form 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"
description="Home">
<MapNode url="~\Music.aspx"
description="Music">
<MapNode url="~\Classical.aspx"
description="Classical"/>
<MapNode url="~\Rock.aspx"
description="Rock"/>
<MapNode url="~\Jazz.aspx"
description="Jazz"/>
</MapNode>
<MapNode url="~\Movies.aspx"
<MapNode url="~\Action.aspx"
description="Action"/>
<MapNode url="~\Drama.aspx"
description="Drama"/>
<MapNode url="~\Musical.aspx"
description="Musical"/>
</MapNode>
</MapHomeNode>

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- Menu.DataBindings プロパティのページへのリンク