MenuItemBinding クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
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 オブジェクトは、各データ項目とバインドするメニュー項目の間のリレーションシップを定義します。
Note
Menu コントロールがSiteMapDataSource コントロールにバインドされている場合、メニュー項目のバインドは無効になります。 バインドは、サイト マップ プロバイダーを使用して自動的に実行されます。
Menu コントロールは、MenuItemBinding プロパティにそのDataBindings オブジェクトを格納し、データ ソースにバインドを適用して、メニュー階層とデータ ソース階層の間に 1 対 1 のリレーションシップを作成します。 データ ソース内のデータ項目ごとに、Menu コントロールは、対応するMenuItemBinding オブジェクトを作成するために、データ項目をMenuItem オブジェクトと照合しようとします。
MenuItemBinding オブジェクトを作成するときは、バインドの条件を指定する必要があります。 条件は、データ項目をメニュー項目にバインドする必要があるタイミングを示します。 Depth、DataMember、またはその両方を指定できます。
メニュー項目の深さは、バインドされるメニュー レベルを指定します。 たとえば、次の MenuItemBinding 宣言では、データ ソースの Name フィールドと ID フィールドをそれぞれ、深さが 0 のすべてのノードの Text プロパティと Value プロパティにバインドします。
<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 オブジェクトのプロパティをバインドできます。 データ項目のフィールドまたは静的な値にバインドできます。 静的な値にバインドすると、MenuItem オブジェクトが適用されるすべてのMenuItemBinding オブジェクトが同じ値を共有します。 フィールドにバインドされたプロパティには、データ ソースの対応するフィールドの値が含まれます。
Note
対応するプロパティを直接設定することで、 MenuItem オブジェクト内のバインドされたプロパティを選択的にオーバーライドできます。
次の表に、MenuItemBinding オブジェクトのプロパティをデータ項目のフィールドにバインドできるMenuItem クラスのプロパティを示します。
| Property | Description |
|---|---|
| ImageUrlField | ImageUrl オブジェクトのMenuItem プロパティにバインドするフィールド。 |
| NavigateUrlField | NavigateUrl オブジェクトのMenuItem プロパティにバインドするフィールド。 |
| TextField | Text オブジェクトのMenuItem プロパティにバインドするフィールド。 |
| ToolTipField | ToolTip オブジェクトのMenuItem プロパティにバインドするフィールド。 |
| ValueField | Value オブジェクトのMenuItem プロパティにバインドするフィールド。 |
次の表に、MenuItemBinding オブジェクトのプロパティを静的な値にバインドできるMenuItem クラスのプロパティを示します。
| Property | Description |
|---|---|
| ImageUrl | ImageUrl オブジェクトのMenuItem プロパティにバインドする静的な値。 |
| NavigateUrl | NavigateUrl オブジェクトのMenuItem プロパティにバインドする静的な値。 |
| Target | Target オブジェクトのMenuItem プロパティにバインドする静的な値。 |
| Text | Text オブジェクトのMenuItem プロパティにバインドする静的な値。 |
| ToolTip | ToolTip オブジェクトのMenuItem プロパティにバインドする静的な値。 |
| Value | Value オブジェクトのMenuItem プロパティにバインドする静的な値。 |
競合 MenuItemBinding オブジェクトが定義されている場合、 Menu コントロールはメニュー項目のバインドを次の優先順位で適用します。
深度メンバーとデータ メンバーの両方を定義して一致する MenuItemBinding オブジェクト。
データ メンバーのみを定義して一致する MenuItemBinding オブジェクト。
深度のみを定義して一致する MenuItemBinding オブジェクト。
深度もデータ メンバーも定義しない MenuItemBinding オブジェクト。 (この種類のメニュー項目バインドは、メニュー内のすべてのメニュー項目に適用されます)。
データ ソースに一致するものがない MenuItemBinding オブジェクト。 この場合、データ項目の
ToString()メソッドによって返される値は、Text オブジェクトが適用されるメニュー項目のValueプロパティとMenuItemBindingプロパティにバインドされます。
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 オブジェクトに指示します。 |
適用対象
こちらもご覧ください
- Menu
- MenuItem
- MenuItemBindingCollection
- AccessDataSource
- ObjectDataSource
- SiteMapDataSource
- SqlDataSource
- XmlDataSource
- DataBindings
- DataMember
- Depth
- FormatString
- ImageUrl
- ImageUrl
- ImageUrlField
- NavigateUrl
- NavigateUrl
- NavigateUrlField
- Target
- Text
- Text
- TextField
- ToolTip
- ToolTip
- ToolTipField
- Value
- ValueField