MenuItemBinding クラス

定義

データ項目とそのバインド先の Menu コントロール内のメニュー項目との間の関係を定義します。 このクラスは継承できません。

public ref class MenuItemBinding sealed : ICloneable, System::Web::UI::IDataSourceViewSchemaAccessor, System::Web::UI::IStateManager
public sealed class MenuItemBinding : ICloneable, System.Web.UI.IDataSourceViewSchemaAccessor, System.Web.UI.IStateManager
type MenuItemBinding = class
    interface IStateManager
    interface ICloneable
    interface IDataSourceViewSchemaAccessor
Public NotInheritable Class MenuItemBinding
Implements ICloneable, IDataSourceViewSchemaAccessor, IStateManager
継承
MenuItemBinding
実装

次のコード例では、オブジェクトを使用 MenuItemBinding して、コントロールのフィールドとコントロール内のメニュー項目の間の XmlDataSource リレーションシップを定義する方法を Menu 示します。 この例を正しく機能させるには、以下のサンプル XML データを Menu.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 Example</title>
</head>
<body>
    <form id="form1" runat="server">

      <h3>MenuItemBinding Example</h3>

      <asp:menu id="NavigationMenu"
        datasourceid="MenuSource"
        runat="server">
        
        <DataBindings>
        
          <asp:menuitembinding datamember="MapHomeNode"
            formatstring="({0})" 
            textfield="Title"
            valuefield="Description"
            imageurlfield="ImageUrl"
            tooltipfield="ToolTip"
            target="_self" />
          <asp:menuitembinding datamember="MapNode" 
            depth="1"
            formatstring="[{0}]" 
            textfield="Title"
            valuefield="Description"
            imageurlfield="ImageUrl"
            tooltipfield="ToolTip"
            target="_blank"/>
          <asp:menuitembinding datamember="MapNode" 
            depth="2"
            formatstring="<{0}>" 
            textfield="Title"
            valuefield="Description"
            imageurlfield="ImageUrl"
            tooltipfield="ToolTip"
            target="_blank"/>
          
        </DataBindings>
        
      </asp:menu>

      <asp:xmldatasource id="MenuSource"
        datafile="Menu.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 Example</title>
</head>
<body>
    <form id="form1" runat="server">

      <h3>MenuItemBinding Example</h3>

      <asp:menu id="NavigationMenu"
        datasourceid="MenuSource"
        runat="server">
        
        <DataBindings>
        
          <asp:menuitembinding datamember="MapHomeNode"
            formatstring="({0})" 
            textfield="Title"
            valuefield="Description"
            imageurlfield="ImageUrl"
            tooltipfield="ToolTip"
            target="_self" />
          <asp:menuitembinding datamember="MapNode" 
            depth="1"
            formatstring="[{0}]" 
            textfield="Title"
            valuefield="Description"
            imageurlfield="ImageUrl"
            tooltipfield="ToolTip"
            target="_blank"/>
          <asp:menuitembinding datamember="MapNode" 
            depth="2"
            formatstring="<{0}>" 
            textfield="Title"
            valuefield="Description"
            imageurlfield="ImageUrl"
            tooltipfield="ToolTip"
            target="_blank"/>
          
        </DataBindings>
        
      </asp:menu>

      <asp:xmldatasource id="MenuSource"
        datafile="Menu.xml"
        runat="server"/> 

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

次のコードは、前の例のサンプル サイト マップ データです。

<MapHomeNode ImageUrl="~\Images\Home.gif"

Title="Home"

Description="Root Page"

ToolTip="Home Page">

<MapNode ImageUrl="~\Images\Music.gif"

Title="Music"

Description="Music Category"

ToolTip="Music Page">

<MapNode ImageUrl="~\Images\Classical.gif"

Title="Classical"

Description="Classical Section"

ToolTip="Classical Page"/>

<MapNode ImageUrl="~\Images\Rock.gif"

Title="Rock"

Description="Rock Section"

ToolTip="Rock Page"/>

<MapNode ImageUrl="~\Images\Jazz.gif"

Title="Jazz"

Description="Jazz Section"

ToolTip="Jazz Page"/>

</MapNode>

<MapNode ImageUrl="~\Images\Movies.gif"

Title="Movies"

Description="Movies Category"

ToolTip="Movies Page">

<MapNode ImageUrl="~\Images\Action.gif"

Title="Action"

Description="Action Section"

ToolTip="Action Page"/>

<MapNode ImageUrl="~\Images\Drama.gif"

Title="Drama"

Description="Drama Section"

ToolTip="Drama Page"/>

<MapNode ImageUrl="~\Images\Musical.gif"

Title="Musical"

Description="Musical Section"

ToolTip="Musical Page"/>

</MapNode>

</MapHomeNode>

注釈

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

注意

コントロールが Menu コントロールに SiteMapDataSource バインドされている場合、メニュー項目のバインドは無効になります。 バインドは、サイト マップ プロバイダーを使用して自動的に実行されます。

コントロールはその Menu オブジェクトを MenuItemBinding プロパティに DataBindings 格納し、バインディングをデータ ソースに適用して、メニュー階層とデータ ソース階層の間に 1 対 1 のリレーションシップを作成します。 データ ソース内のデータ項目ごとに、コントロールは Menu データ項目をオブジェクトと照合して MenuItemBinding 、対応する MenuItem オブジェクトを作成しようとします。

オブジェクトを MenuItemBinding 作成するときは、バインドの条件を指定する必要があります。 条件は、データ項目をメニュー項目にバインドするタイミングを示します。 、またはその両方をDepthDataMember指定できます。

メニュー項目の深さは、バインドされるメニュー レベルを指定します。 たとえば、次 MenuItemBinding の宣言では、データ ソース Text の Name フィールドと Value ID フィールドをそれぞれ、深さが 0 のすべてのノードのプロパティにバインドします。

<asp:MenuItemBinding Depth="0" TextField="Name" ValueField="ID">  

データ メンバーは、基になるデータ ソース内のデータ項目の種類を指定しますが、データ ソースに応じて異なる情報を表すことができます。 階層データ ソース (オブジェクトによって 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オブジェクトが同じ値を共有します。 フィールドにバインドされたプロパティには、データ ソースの対応するフィールドの値が含まれます。

注意

対応するプロパティを直接設定することで、オブジェクト内の MenuItem バインドされたプロパティを選択的にオーバーライドできます。

次の表に、オブジェクトのプロパティを MenuItemBinding データ項目のフィールドにバインドできるクラスのプロパティ MenuItem を示します。

プロパティ 説明
ImageUrlField オブジェクトのMenuItemプロパティにImageUrlバインドするフィールド。
NavigateUrlField オブジェクトのMenuItemプロパティにNavigateUrlバインドするフィールド。
TextField オブジェクトのMenuItemプロパティにTextバインドするフィールド。
ToolTipField オブジェクトのMenuItemプロパティにToolTipバインドするフィールド。
ValueField オブジェクトのMenuItemプロパティにValueバインドするフィールド。

次の表に、オブジェクトのプロパティを MenuItemBinding 静的な値にバインドできるクラスのプロパティを MenuItem 示します。

プロパティ 説明
ImageUrl オブジェクトのプロパティMenuItemにバインドするImageUrl静的な値。
NavigateUrl オブジェクトのプロパティMenuItemにバインドするNavigateUrl静的な値。
Target オブジェクトのプロパティMenuItemにバインドするTarget静的な値。
Text オブジェクトのプロパティMenuItemにバインドするText静的な値。
ToolTip オブジェクトのプロパティMenuItemにバインドするToolTip静的な値。
Value オブジェクトのプロパティMenuItemにバインドするValue静的な値。

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

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

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

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

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

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

この MenuItemBinding クラスでは、プロパティを設定することで、メニュー項目に表示されるテキストの書式を FormatString 設定することもできます。

コンストラクター

MenuItemBinding()

MenuItemBinding クラスの新しいインスタンスを初期化します。

プロパティ

DataMember

メニュー項目にバインドするデータ メンバーを取得または設定します。

Depth

MenuItemBinding オブジェクトが適用されるメニューの深さを取得または設定します。

Enabled

MenuItemBinding オブジェクトが適用されるメニュー項目が有効であるかどうかを示す値を取得または設定します。メニュー項目が有効であれば、ポップアウト イメージおよび子メニュー項目を表示できます。

EnabledField

データ ソースからフィールドの名前を取得または設定し、Enabled オブジェクトが適用される MenuItem オブジェクトの MenuItemBinding プロパティにバインドします。

FormatString

MenuItemBinding オブジェクトが適用されるメニュー項目のテキストの表示形式を指定する文字列を取得または設定します。

ImageUrl

MenuItemBinding オブジェクトが適用されるメニュー項目のテキストの横に表示されるイメージの URL を取得または設定します。

ImageUrlField

データ ソースからフィールドの名前を取得または設定し、ImageUrl オブジェクトが適用される MenuItem オブジェクトの MenuItemBinding プロパティにバインドします。

NavigateUrl

MenuItemBinding オブジェクトが適用されるメニュー項目をクリックしたときにリンクする URL を取得または設定します。

NavigateUrlField

データ ソースからフィールドの名前を取得または設定し、NavigateUrl オブジェクトが適用される MenuItem オブジェクトの MenuItemBinding プロパティにバインドします。

PopOutImageUrl

MenuItemBinding オブジェクトが適用されるメニュー項目の動的サブメニューの存在を示すイメージの URL を取得または設定します。

PopOutImageUrlField

データ ソースからフィールドの名前を取得または設定し、PopOutImageUrl オブジェクトが適用される MenuItem オブジェクトの MenuItemBinding プロパティにバインドします。

Selectable

MenuItemBinding オブジェクトが適用されるメニュー項目を選択できるかどうか、または "クリックできる" かどうかを示す値を取得または設定します。

SelectableField

データ ソースからフィールドの名前を取得または設定し、Selectable オブジェクトが適用される MenuItem オブジェクトの MenuItemBinding プロパティにバインドします。

SeparatorImageUrl

MenuItemBinding オブジェクトが適用されるメニュー項目のメニュー項目テキスト (他のメニュー項目と区別するためのテキスト) の下に表示されるイメージの URL を取得または設定します。

SeparatorImageUrlField

データ ソースからフィールドの名前を取得または設定し、SeparatorImageUrl オブジェクトが適用される MenuItem オブジェクトの MenuItemBinding プロパティにバインドします。

Target

MenuItemBinding オブジェクトが適用されるメニュー項目に関連付けられている Web ページの内容を表示する、対象のウィンドウまたはフレームを取得または設定します。

TargetField

データ ソースからフィールドの名前を取得または設定し、Target オブジェクトが適用される MenuItem オブジェクトの MenuItemBinding プロパティにバインドします。

Text

MenuItemBinding オブジェクトが適用されるメニュー項目に表示されるテキストを取得または設定します。

TextField

データ ソースからフィールドの名前を取得または設定し、Text オブジェクトが適用される MenuItem オブジェクトの MenuItemBinding プロパティにバインドします。

ToolTip

MenuItemBinding オブジェクトが適用されるメニュー項目のツールヒント テキストを取得または設定します。

ToolTipField

データ ソースからフィールドの名前を取得または設定し、ToolTip オブジェクトが適用される MenuItem オブジェクトの MenuItemBinding プロパティにバインドします。

Value

MenuItemBinding オブジェクトが適用されるメニュー項目の補足データ (ポストバック イベントを処理するために使用するデータなど) を格納するために使用される、非表示の値を取得または設定します。

ValueField

データ ソースからフィールドの名前を取得または設定し、Value オブジェクトが適用される MenuItem オブジェクトの MenuItemBinding プロパティにバインドします。

メソッド

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
ToString()

現在のオブジェクトを表す文字列を返します。

明示的なインターフェイスの実装

ICloneable.Clone()

MenuItemBinding オブジェクトのコピーを作成します。

IDataSourceViewSchemaAccessor.DataSourceViewSchema

このメンバーの詳細については、「DataSourceViewSchema」をご覧ください。

IStateManager.IsTrackingViewState

MenuItemBinding オブジェクトがビューステートへの変更を保存しているかどうかを示す値を取得します。

IStateManager.LoadViewState(Object)

前回保存されたノードのビューステートを読み込みます。

IStateManager.SaveViewState()

ビューステートの変更を Object に保存します。

IStateManager.TrackViewState()

ビュー ステートへの変更を追跡するように MenuItemBinding オブジェクトに指示します。

適用対象

こちらもご覧ください