MenuItemBinding クラス

定義

データ項目とそのバインド先の Menu コントロール内のメニュー項目との間の関係を定義します。Defines the relationship between a data item and the menu item it is binding to in a Menu control. このクラスは継承できません。This class cannot be inherited.

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 コントロールのメニュー項目の間のリレーションシップを定義する方法を示します。The following code example demonstrates how to use MenuItemBinding objects to define the relationship between the fields of an XmlDataSource control and the menu items in a Menu control. この例を正しく動作させるには、次のサンプル XML データを、「.xml」という名前のファイルにコピーする必要があります。For this example to work correctly, you must copy the sample XML data below to a file named 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>

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

<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>

注釈

各データ項目に複数のフィールド (いくつかの属性を持つ XML 要素など) が含まれているデータソースに Menu コントロールがバインドされている場合、メニュー項目のバインドが定義されていないと、メニュー項目によって、データ項目の ToString() メソッドによって返された値が表示されます。標準.When the Menu control is bound to a data source where each data item contains multiple fields (such as an XML element with several attributes), if no menu item bindings are defined, a menu item displays the value returned by the ToString() method of the data item by default. XML 要素の場合、メニュー項目には、メニューの基になる構造を示す要素名が表示されますが、それ以外の場合はあまり便利ではありません。In the case of an XML element, the menu item displays the element name, which shows the underlying structure of the menu, but is not very useful otherwise. メニュー項目のバインドを指定することによって、メニュー項目のプロパティを特定のフィールドにバインドできます。You can bind the properties of a menu item to a specific field by specifying menu item bindings. MenuItemBinding オブジェクトは、各データ項目とそのバインド先のメニュー項目との間のリレーションシップを定義します。A MenuItemBinding object defines the relationship between each data item and the menu item it is binding to.

注意

Menu コントロールが SiteMapDataSource コントロールにバインドされている場合、メニュー項目のバインドは無効になります。When the Menu control is bound to a SiteMapDataSource control, menu item bindings have no effect. バインドは、サイトマッププロバイダーを使用して自動的に実行されます。Binding is performed automatically using the site map provider.

Menu コントロールは、その MenuItemBinding オブジェクトを DataBindings プロパティに格納し、バインドをデータソースに適用して、メニュー階層とデータソース階層の間に一対一のリレーションシップを作成します。The Menu control stores its MenuItemBinding objects in the DataBindings property and applies the bindings to the data source to create a one-to-one relationship between the menu hierarchy and the data source hierarchy. Menu コントロールは、データソース内の各データ項目について、データ項目を MenuItemBinding オブジェクトと照合して、対応する MenuItem オブジェクトを作成しようとします。For each data item in the data source, the Menu control attempts to match the data item to a MenuItemBinding object to create the corresponding MenuItem object.

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. DepthDataMember、またはその両方を指定できます。You can specify the Depth, the DataMember, or both.

メニュー項目の深さは、バインドされるメニューレベルを指定します。A menu item depth specifies the menu level that gets bound. たとえば、次の MenuItemBinding 宣言を使用すると、データソースの Name フィールドと ID フィールドがそれぞれ、深さが0のすべてのノードの Text および Value プロパティにバインドされます。For example, the following MenuItemBinding declaration binds the Name and ID fields of the data source to the Text and Value properties, respectively, of all nodes with a depth of 0:

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

データメンバーは、基になるデータソースのデータ項目の種類を指定しますが、データソースによって異なる情報を表すことができます。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. 階層データソース内の各データ項目 (IHierarchyData オブジェクトによって表されます) は、データ項目の型を指定する Type プロパティを公開します。Each data item in a hierarchical data source (represented by an IHierarchyData object) exposes a 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. データソースに複数のデータ項目の種類が含まれている場合、使用するデータ項目の種類はデータメンバーによって指定されます。When a data source contains multiple data item types, the data member specifies which data item type to use. 次の MenuItemBinding 宣言は、XmlDataSource コントロールの <Book> 要素を、階層内の場所に関係なく、メニュー内のすべてのメニュー項目にバインドします。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. たとえば、XML ファイル内のさまざまなレベルで表示される要素を <Item> することができます。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 and 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. 静的な値にバインドされると、MenuItemBinding オブジェクトが適用されるすべての MenuItem オブジェクトが同じ値を共有します。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 corresponding field from the data source.

注意

対応するプロパティを直接設定することによって、MenuItem オブジェクト内のバインドされたプロパティを選択的にオーバーライドできます。You can selectively override a bound property in a MenuItem object by setting the corresponding property directly.

次の表に、MenuItem オブジェクトのプロパティをデータ項目のフィールドにバインドできるようにする MenuItemBinding クラスのプロパティを示します。The following table lists the properties of the MenuItemBinding class that allow you to bind a property of the MenuItem object to a field of a data item.

プロパティProperty 説明Description
ImageUrlField MenuItem オブジェクトの ImageUrl プロパティにバインドするフィールド。The field to bind to the ImageUrl property of a MenuItem object.
NavigateUrlField MenuItem オブジェクトの NavigateUrl プロパティにバインドするフィールド。The field to bind to the NavigateUrl property of a MenuItem object.
TextField MenuItem オブジェクトの Text プロパティにバインドするフィールド。The field to bind to the Text property of a MenuItem object.
ToolTipField MenuItem オブジェクトの ToolTip プロパティにバインドするフィールド。The field to bind to the ToolTip property of a MenuItem object.
ValueField MenuItem オブジェクトの Value プロパティにバインドするフィールド。The field to bind to the Value property of a MenuItem object.

次の表に、MenuItem オブジェクトのプロパティを静的な値にバインドできるようにする MenuItemBinding クラスのプロパティを示します。The following table lists the properties of the MenuItemBinding class that allow you to bind a property of the MenuItem object to a static value.

プロパティProperty 説明Description
ImageUrl MenuItem オブジェクトの ImageUrl プロパティにバインドする静的な値。The static value to bind to the ImageUrl property of a MenuItem object.
NavigateUrl MenuItem オブジェクトの NavigateUrl プロパティにバインドする静的な値。The static value to bind to the NavigateUrl property of a MenuItem object.
Target MenuItem オブジェクトの Target プロパティにバインドする静的な値。The static value to bind to the Target property of a MenuItem object.
Text MenuItem オブジェクトの Text プロパティにバインドする静的な値。The static value to bind to the Text property of a MenuItem object.
ToolTip MenuItem オブジェクトの ToolTip プロパティにバインドする静的な値。The static value to bind to the ToolTip property of a MenuItem object.
Value MenuItem オブジェクトの Value プロパティにバインドする静的な値。The static value to bind to the Value property of a MenuItem object.

競合する 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() メソッドによって返される値は、MenuItemBinding オブジェクトが適用されるメニュー項目の Text および Value プロパティにバインドされます。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.

MenuItemBinding クラスでは、FormatString プロパティを設定することによって、メニュー項目に表示されるテキストの書式を設定することもできます。The MenuItemBinding class also allows you to format the text displayed in a menu item by setting the FormatString property.

コンストラクター

MenuItemBinding()

MenuItemBinding クラスの新しいインスタンスを初期化します。Initializes a new instance of the MenuItemBinding class.

プロパティ

DataMember

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

Depth

MenuItemBinding オブジェクトが適用されるメニューの深さを取得または設定します。Gets or sets the menu depth to which the MenuItemBinding object is applied.

Enabled

MenuItemBinding オブジェクトが適用されるメニュー項目が有効であるかどうかを示す値を取得または設定します。メニュー項目が有効であれば、ポップアウト イメージおよび子メニュー項目を表示できます。Gets or sets a value that indicates whether the menu item to which the MenuItemBinding object is applied is enabled, allowing the item to display a pop-out image and any child menu items.

EnabledField

データ ソースからフィールドの名前を取得または設定し、Enabled オブジェクトが適用される MenuItem オブジェクトの MenuItemBinding プロパティにバインドします。Gets or sets the name of the field from the data source to bind to the Enabled property of a MenuItem object to which the MenuItemBinding object is applied.

FormatString

MenuItemBinding オブジェクトが適用されるメニュー項目のテキストの表示形式を指定する文字列を取得または設定します。Gets or sets the string that specifies the display format for the text of a menu item to which the MenuItemBinding object is applied.

ImageUrl

MenuItemBinding オブジェクトが適用されるメニュー項目のテキストの横に表示されるイメージの URL を取得または設定します。Gets or sets the URL to an image that is displayed next to the text of a menu item to which the MenuItemBinding object is applied.

ImageUrlField

データ ソースからフィールドの名前を取得または設定し、ImageUrl オブジェクトが適用される MenuItem オブジェクトの MenuItemBinding プロパティにバインドします。Gets or sets the name of the field from the data source to bind to the ImageUrl property of a MenuItem object to which the MenuItemBinding object is applied.

NavigateUrl

MenuItemBinding オブジェクトが適用されるメニュー項目をクリックしたときにリンクする URL を取得または設定します。Gets or sets the URL to link to when a menu item to which the MenuItemBinding object is applied is clicked.

NavigateUrlField

データ ソースからフィールドの名前を取得または設定し、NavigateUrl オブジェクトが適用される MenuItem オブジェクトの MenuItemBinding プロパティにバインドします。Gets or sets the name of the field from the data source to bind to the NavigateUrl property of a MenuItem object to which the MenuItemBinding object is applied.

PopOutImageUrl

MenuItemBinding オブジェクトが適用されるメニュー項目の動的サブメニューの存在を示すイメージの URL を取得または設定します。Gets or sets the URL to an image that indicates the presence of a dynamic submenu for a menu item to which the MenuItemBinding object is applied.

PopOutImageUrlField

データ ソースからフィールドの名前を取得または設定し、PopOutImageUrl オブジェクトが適用される MenuItem オブジェクトの MenuItemBinding プロパティにバインドします。Gets or sets the name of the field from the data source to bind to the PopOutImageUrl property of a MenuItem object to which the MenuItemBinding object is applied.

Selectable

MenuItemBinding オブジェクトが適用されるメニュー項目を選択できるかどうか、または "クリックできる" かどうかを示す値を取得または設定します。Gets or sets a value that indicates whether the menu item to which the MenuItemBinding object is applied can be selected, or is "clickable."

SelectableField

データ ソースからフィールドの名前を取得または設定し、Selectable オブジェクトが適用される MenuItem オブジェクトの MenuItemBinding プロパティにバインドします。Gets or sets the name of the field from the data source to bind to the Selectable property of a MenuItem object to which the MenuItemBinding object is applied.

SeparatorImageUrl

MenuItemBinding オブジェクトが適用されるメニュー項目のメニュー項目テキスト (他のメニュー項目と区別するためのテキスト) の下に表示されるイメージの URL を取得または設定します。Gets or sets the URL to an image displayed below the text of a menu item (to separate it from other menu items) for a menu item to which the MenuItemBinding object is applied.

SeparatorImageUrlField

データ ソースからフィールドの名前を取得または設定し、SeparatorImageUrl オブジェクトが適用される MenuItem オブジェクトの MenuItemBinding プロパティにバインドします。Gets or sets the name of the field from the data source to bind to the SeparatorImageUrl property of a MenuItem object to which the MenuItemBinding object is applied.

Target

MenuItemBinding オブジェクトが適用されるメニュー項目に関連付けられている Web ページの内容を表示する、対象のウィンドウまたはフレームを取得または設定します。Gets or sets the target window or frame in which to display the Web page content associated with a menu item to which the MenuItemBinding object is applied.

TargetField

データ ソースからフィールドの名前を取得または設定し、Target オブジェクトが適用される MenuItem オブジェクトの MenuItemBinding プロパティにバインドします。Gets or sets the name of the field from the data source to bind to the Target property of a MenuItem object to which the MenuItemBinding object is applied.

Text

MenuItemBinding オブジェクトが適用されるメニュー項目に表示されるテキストを取得または設定します。Gets or sets the text displayed for the menu item to which the MenuItemBinding object is applied.

TextField

データ ソースからフィールドの名前を取得または設定し、Text オブジェクトが適用される MenuItem オブジェクトの MenuItemBinding プロパティにバインドします。Gets or sets the name of the field from the data source to bind to the Text property of a MenuItem object to which the MenuItemBinding object is applied.

ToolTip

MenuItemBinding オブジェクトが適用されるメニュー項目のツールヒント テキストを取得または設定します。Gets or sets the ToolTip text for a menu item to which the MenuItemBinding object is applied.

ToolTipField

データ ソースからフィールドの名前を取得または設定し、ToolTip オブジェクトが適用される MenuItem オブジェクトの MenuItemBinding プロパティにバインドします。Gets or sets the name of the field from the data source to bind to the ToolTip property of a MenuItem object to which the MenuItemBinding object is applied.

Value

MenuItemBinding オブジェクトが適用されるメニュー項目の補足データ (ポストバック イベントを処理するために使用するデータなど) を格納するために使用される、非表示の値を取得または設定します。Gets or sets a nondisplayed value used to store any additional data about a menu item to which the MenuItemBinding object is applied, such as data used for handling postback events.

ValueField

データ ソースからフィールドの名前を取得または設定し、Value オブジェクトが適用される MenuItem オブジェクトの MenuItemBinding プロパティにバインドします。Gets or sets the name of the field from the data source to bind to the Value property of a MenuItem object to which the MenuItemBinding object is applied.

メソッド

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判定します。Determines whether the specified object is equal to the current object.

(継承元 Object)
GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(継承元 Object)
MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(継承元 Object)
ToString()

現在のオブジェクトを表す文字列を返します。Returns a string that represents the current object.

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

ICloneable.Clone()

MenuItemBinding オブジェクトのコピーを作成します。Creates a copy of the MenuItemBinding object.

IDataSourceViewSchemaAccessor.DataSourceViewSchema

このメンバーの詳細については、「DataSourceViewSchema」をご覧ください。For a description of this member, see DataSourceViewSchema.

IStateManager.IsTrackingViewState

MenuItemBinding オブジェクトがビューステートへの変更を保存しているかどうかを示す値を取得します。Gets a value that indicates whether the MenuItemBinding object is saving changes to its view state.

IStateManager.LoadViewState(Object)

前回保存されたノードのビューステートを読み込みます。Loads the node's previously saved view state.

IStateManager.SaveViewState()

ビューステートの変更を Object に保存します。Saves the view state changes to an Object.

IStateManager.TrackViewState()

ビュー ステートへの変更を追跡するように MenuItemBinding オブジェクトに指示します。Instructs the MenuItemBinding object to track changes to its view state.

適用対象

こちらもご覧ください