TreeNodeBinding クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
データ項目とそのバインド先の TreeView コントロール内のノードとの間の関係を定義します。
public ref class TreeNodeBinding sealed : ICloneable, System::Web::UI::IDataSourceViewSchemaAccessor, System::Web::UI::IStateManager
public sealed class TreeNodeBinding : ICloneable, System.Web.UI.IDataSourceViewSchemaAccessor, System.Web.UI.IStateManager
type TreeNodeBinding = class
interface IStateManager
interface ICloneable
interface IDataSourceViewSchemaAccessor
Public NotInheritable Class TreeNodeBinding
Implements ICloneable, IDataSourceViewSchemaAccessor, IStateManager
- 継承
-
TreeNodeBinding
- 実装
例
次の表は、ツリー ノードバインド宣言の例を示しています。
バインドの例 | [説明] |
---|---|
<asp:TreeNodeBinding TextField="Title" ValueField= "ID"/> |
TextツリーTitle 内のすべてのノードのプロパティとValueプロパティをそれぞれデータ ソースのフィールドにID バインドします。 プロパティとDepthプロパティが設定されていないため、DataMemberすべてのノードでこのツリー ノード バインド宣言が使用されます。 |
<asp:TreeNodeBinding DataMember= "Book" TextField= "Title" ValueField= "ID"/> |
ツリー内のすべてのノードのプロパティをID Value、それぞれデータ ソース内のデータ項目のBook フィールドにバインドします。Title Text |
<asp:TreeNodeBinding Depth="2" TextField= "Title" ValueField= "ID"/> |
ツリーTitle のText深さが 2 のすべてのノードのプロパティとValueID プロパティを、それぞれデータ ソース内のデータ項目のフィールドにバインドします。 |
<asp:TreeNodeBinding DataMember="Book" Depth= "2" TextField= "Title" ValueField= "ID" ImageUrl= "Image.jpg"> |
ツリーTitle のText深さが 2 のすべてのノードのプロパティとValueID プロパティを、それぞれデータ ソース内のデータ項目のBook フィールドにバインドします。 また、ノードの ImageUrl プロパティを静的な値にバインドします。 |
このセクションには、3 つのコード例が含まれています。 最初のコード例では、オブジェクトを宣言的に使用 TreeNodeBinding して、ノードとデータ項目の間のリレーションシップを定義する方法を示します。 2 番目のコード例では、オブジェクトをプログラムで使用 TreeNodeBinding して、ノードとデータ項目の間のリレーションシップを定義する方法を示します。 3 番目のコード例では、1 番目と 2 番目のコード例のサンプル XML データを提供します。
次のコード例では、オブジェクトを宣言的に使用 TreeNodeBinding して、ノードとデータ項目の間のリレーションシップを定義する方法を示します。 この例を正しく機能させるには、このコード例の後に提供されるサンプル XML データを、Book.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>TreeView XML Data Binding Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>TreeView XML Data Binding Example</h3>
<asp:TreeView id="BookTreeView"
DataSourceID="BookXmlDataSource"
runat="server">
<DataBindings>
<asp:TreeNodeBinding DataMember="Book" TextField="Title"/>
<asp:TreeNodeBinding DataMember="Chapter" TextField="Heading"/>
<asp:TreeNodeBinding DataMember="Section" TextField="Heading"/>
</DataBindings>
</asp:TreeView>
<asp:XmlDataSource id="BookXmlDataSource"
DataFile="Book.xml"
runat="server">
</asp:XmlDataSource>
</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>TreeView XML Data Binding Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>TreeView XML Data Binding Example</h3>
<asp:TreeView id="BookTreeView"
DataSourceID="BookXmlDataSource"
runat="server">
<DataBindings>
<asp:TreeNodeBinding DataMember="Book" TextField="Title"/>
<asp:TreeNodeBinding DataMember="Chapter" TextField="Heading"/>
<asp:TreeNodeBinding DataMember="Section" TextField="Heading"/>
</DataBindings>
</asp:TreeView>
<asp:XmlDataSource id="BookXmlDataSource"
DataFile="Book.xml"
runat="server">
</asp:XmlDataSource>
</form>
</body>
</html>
次のコード例では、オブジェクトをプログラムで使用 TreeNodeBinding して、ノードとデータ項目の間のリレーションシップを定義する方法を示します。 この例を正しく機能させるには、次のコード例で提供されているサンプル XML データを、Book.xmlという名前のファイルにコピーする必要があります。
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
void Page_Load(Object sender, EventArgs e)
{
// Create a new TreeView control.
TreeView NewTree = new TreeView();
// Set the properties of the TreeView control.
NewTree.ID = "BookTreeView";
NewTree.DataSourceID = "BookXmlDataSource";
// Create the tree node binding relationship.
// Create the root node binding.
TreeNodeBinding RootBinding = new TreeNodeBinding();
RootBinding.DataMember = "Book";
RootBinding.TextField = "Title";
// Create the parent node binding.
TreeNodeBinding ParentBinding = new TreeNodeBinding();
ParentBinding.DataMember = "Chapter";
ParentBinding.TextField = "Heading";
// Create the leaf node binding.
TreeNodeBinding LeafBinding = new TreeNodeBinding();
LeafBinding.DataMember = "Section";
LeafBinding.TextField = "Heading";
// Add bindings to the DataBindings collection.
NewTree.DataBindings.Add(RootBinding);
NewTree.DataBindings.Add(ParentBinding);
NewTree.DataBindings.Add(LeafBinding);
// Manually register the event handler for the SelectedNodeChanged event.
NewTree.SelectedNodeChanged += new EventHandler(this.Node_Change);
// Add the TreeView control to the Controls collection of the PlaceHolder control.
ControlPlaceHolder.Controls.Add(NewTree);
}
void Node_Change(Object sender, EventArgs e)
{
// Retrieve the TreeView control from the Controls collection of the PlaceHolder control.
TreeView LocalTree = (TreeView)ControlPlaceHolder.FindControl("BookTreeView");
// Display the selected node.
Message.Text = "You selected: " + LocalTree.SelectedNode.Text;
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>TreeView Constructor Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>TreeView Constructor Example</h3>
<asp:PlaceHolder id="ControlPlaceHolder" runat="server">
</asp:PlaceHolder>
<asp:XmlDataSource id="BookXmlDataSource"
DataFile="Book.xml"
runat="server">
</asp:XmlDataSource>
<br /><br />
<asp:Label id="Message" 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">
<script runat="server">
Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
' Create a new TreeView control.
Dim NewTree As New TreeView
' Set the properties of the TreeView control.
NewTree.ID = "BookTreeView"
NewTree.DataSourceID = "BookXmlDataSource"
' Create the tree node binding relationship.
' Create the root node binding.
Dim RootBinding As New TreeNodeBinding
RootBinding.DataMember = "Book"
RootBinding.TextField = "Title"
' Create the parent node binding.
Dim ParentBinding As New TreeNodeBinding
ParentBinding.DataMember = "Chapter"
ParentBinding.TextField = "Heading"
' Create the leaf node binding.
Dim LeafBinding As New TreeNodeBinding
LeafBinding.DataMember = "Section"
LeafBinding.TextField = "Heading"
' Add bindings to the DataBindings collection.
NewTree.DataBindings.Add(RootBinding)
NewTree.DataBindings.Add(ParentBinding)
NewTree.DataBindings.Add(LeafBinding)
' Manually register the event handler for the SelectedNodeChanged event.
AddHandler NewTree.SelectedNodeChanged, AddressOf Node_Change
' Add the TreeView control to the Controls collection of the PlaceHolder control.
ControlPlaceHolder.Controls.Add(NewTree)
End Sub
Sub Node_Change(ByVal sender As Object, ByVal e As EventArgs)
' Retrieve the TreeView control from the Controls collection of the PlaceHolder control.
Dim LocalTree As TreeView = CType(ControlPlaceHolder.FindControl("BookTreeView"), TreeView)
' Display the selected node.
Message.Text = "You selected: " & LocalTree.SelectedNode.Text
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>TreeView Constructor Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>TreeView Constructor Example</h3>
<asp:PlaceHolder id="ControlPlaceHolder" runat="server">
</asp:PlaceHolder>
<asp:XmlDataSource id="BookXmlDataSource"
DataFile="Book.xml"
runat="server">
</asp:XmlDataSource>
<br /><br />
<asp:Label id="Message" runat="server"/>
</form>
</body>
</html>
次のコード例では、前のコード例のサンプル XML データを提供します。
<Book Title="Book Title">
<Chapter Heading="Chapter 1">
<Section Heading="Section 1">
</Section>
<Section Heading="Section 2">
</Section>
</Chapter>
<Chapter Heading="Chapter 2">
<Section Heading="Section 1">
</Section>
</Chapter>
</Book>
注釈
TreeView各データ項目に複数のフィールド (複数の属性を持つ XML 要素など) が含まれるデータ ソースにコントロールがバインドされている場合、ノードには既定でデータ項目のメソッドによってToString
返される値が表示されます。 XML 要素の場合、ノードには要素名が表示されます。この名前はツリーの基になる構造を示しますが、それ以外の場合はあまり役に立ちません。 ツリー ノード バインドを指定することで、ノードのプロパティを特定のフィールドにバインドできます。 オブジェクトは TreeNodeBinding 、各データ項目とバインドするノードの間のリレーションシップを定義します。
コントロールはその TreeView オブジェクトを TreeNodeBinding プロパティに DataBindings 格納し、バインドをデータ ソースに適用して、ツリー階層とデータ ソース階層の間に一対一のリレーションシップを作成します。 データ ソース内のデータ項目ごとに、コントロールはTreeView対応するTreeNodeオブジェクトを作成するために、データ項目をTreeNodeBindingオブジェクトと照合しようとします。
オブジェクトを TreeNodeBinding 作成するときは、バインドの条件を指定する必要があります。 条件は、データ項目をノードにバインドするタイミングを示します。 またはDataMemberプロパティ、または両方のプロパティをDepth指定できます。 両方を指定することで、パフォーマンスが若干向上します。 ノードの深さは、バインドされるノード レベルを指定します。 たとえば、次TreeNodeBindingの宣言では、深さが 0 のすべてのノードのデータ ソースとValueフィールドをそれぞれプロパティにバインドName``ID
しますText。
<asp:TreeNodeBinding Depth="0" TextField="Name" ValueField="ID">
データ メンバーは、基になるデータ ソース内のデータ項目の種類を指定しますが、データ ソースに応じて異なる情報を表すことができます。 階層データ ソース (インターフェイスで System.Web.UI.IHierarchyData 表される) 内の各データ項目は、データ項目の種類を IHierarchyData.Type 指定するプロパティを公開します。 たとえば、XML 要素のデータ メンバーは、要素の名前を指定します。 データ ソースに複数のデータ項目型が含まれている場合、データ メンバーは使用するデータ項目の種類を指定します。 次 TreeNodeBinding の宣言は、 <Book>
階層内の XmlDataSource 場所に関係なく、ツリー内のすべてのノードにコントロールの要素をバインドします。
<asp:TreeNodeBinding DataMember="Book" TextField="Title" ValueField= "ISBN">
バインド条件が確立されたら、値にバインドできるオブジェクトの TreeNode プロパティをバインドできます。 データ項目のフィールドまたは静的な値にバインドできます。 静的な値にバインドすると、そのオブジェクトがTreeNodeBinding適用されるすべてのTreeNodeオブジェクトが同じ値を共有します。
注意
ノード内で対応するプロパティを直接設定することで、 TreeNode オブジェクト内のバインドされたプロパティを選択的にオーバーライドできます。
次の表に、オブジェクトのプロパティを TreeNodeBinding データ項目のフィールドにバインドできるクラスのプロパティ TreeNode を示します。
プロパティ | 説明 |
---|---|
ImageUrlField | オブジェクトのTreeNodeプロパティにImageUrlバインドするフィールド。 |
ImageToolTipField | オブジェクトのTreeNodeプロパティにImageToolTipバインドするフィールド。 |
NavigateUrlField | オブジェクトのTreeNodeプロパティにNavigateUrlバインドするフィールド。 |
TextField | オブジェクトのTreeNodeプロパティにTextバインドするフィールド。 |
ToolTipField | オブジェクトのTreeNodeプロパティにToolTipバインドするフィールド。 |
ValueField | オブジェクトのTreeNodeプロパティにValueバインドするフィールド。 |
次の表に、オブジェクトのプロパティを TreeNodeBinding 静的な値にバインドできるクラスのプロパティを TreeNode 示します。
プロパティ | 説明 |
---|---|
ImageUrl | オブジェクトのプロパティTreeNodeにバインドするImageUrl静的な値。 |
ImageToolTip | オブジェクトのプロパティTreeNodeにバインドするImageToolTip静的な値。 |
NavigateUrl | オブジェクトのプロパティTreeNodeにバインドするNavigateUrl静的な値。 |
PopulateOnDemand | オブジェクトのプロパティTreeNodeにバインドするPopulateOnDemand静的な値。 |
SelectAction | オブジェクトのプロパティTreeNodeにバインドするSelectAction静的な値。 |
ShowCheckBox | オブジェクトのプロパティTreeNodeにバインドするShowCheckBox静的な値。 |
Target | オブジェクトのプロパティTreeNodeにバインドするTarget静的な値。 |
Text | オブジェクトのプロパティTreeNodeにバインドするText静的な値。 |
ToolTip | オブジェクトのプロパティTreeNodeにバインドするToolTip静的な値。 |
Value | オブジェクトのプロパティTreeNodeにバインドするValue静的な値。 |
競合する TreeNodeBinding オブジェクトが定義されている場合、コントロールは TreeView 次の優先順位でツリー ノード バインドを適用します。
TreeNodeBinding深度とデータ メンバーの両方を定義して一致するオブジェクト。
TreeNodeBindingデータ メンバーのみを定義し、一致するオブジェクト。
TreeNodeBinding深度のみを定義し、一致するオブジェクト。
TreeNodeBinding深度もデータ メンバーも定義しないオブジェクト。 (この種類のツリー ノード バインドは、ツリー内のすべてのノードに適用されます)。
TreeNodeBindingデータ ソースに一致するものがないオブジェクト。 この場合、データ項目のメソッドによって
ToString
返される値は、オブジェクトが適用されるTreeNodeBindingノードのプロパティとValueにバインドTextされます。
この TreeNodeBinding クラスでは、プロパティを設定することで、ノードに表示されるテキストの書式を FormatString 設定することもできます。
コンストラクター
TreeNodeBinding() |
TreeNodeBinding クラスの新しいインスタンスを初期化します。 |
プロパティ
DataMember |
ツリー ノード バインディングを適用するかどうかを判断するために、データ項目の Type プロパティと照合する値を取得または設定します。 |
Depth |
TreeNodeBinding オブジェクトが適用されるノードの深さを取得または設定します。 |
FormatString |
TreeNodeBinding オブジェクトが適用されるノードのテキストの表示形式を指定する文字列を取得または設定します。 |
ImageToolTip |
TreeNodeBinding オブジェクトが適用されるノードの横に表示されるイメージのツールヒント テキストを取得または設定します。 |
ImageToolTipField |
データ ソースからフィールドの名前を取得または設定し、ImageToolTip オブジェクトが適用される TreeNode オブジェクトの TreeNodeBinding プロパティにバインドします。 |
ImageUrl |
TreeNodeBinding オブジェクトが適用されるノードの横に表示されるイメージの URL を取得または設定します。 |
ImageUrlField |
データ ソースからフィールドの名前を取得または設定し、ImageUrl オブジェクトが適用される TreeNode オブジェクトの TreeNodeBinding プロパティにバインドします。 |
NavigateUrl |
TreeNodeBinding オブジェクトが適用されるノードをクリックしたときにリンクする URL を取得または設定します。 |
NavigateUrlField |
データ ソースからフィールドの名前を取得または設定し、NavigateUrl オブジェクトが適用される TreeNode オブジェクトの TreeNodeBinding プロパティにバインドします。 |
PopulateOnDemand |
TreeNodeBinding オブジェクトが適用されるノードに動的にデータを設定するかどうかを示す値を取得または設定します。 |
SelectAction |
TreeNodeBinding オブジェクトが適用されるノードを選択したときに発生するイベントを取得または設定します。 |
ShowCheckBox |
TreeNodeBinding オブジェクトが適用されるノードの横にチェック ボックスを表示するかどうかを示す値を取得または設定します。 |
Target |
TreeNodeBinding オブジェクトが適用されるノードに関連付けられている Web ページのコンテンツを表示する、対象のウィンドウまたはフレームを取得または設定します。 |
TargetField |
データ ソースからフィールドの名前を取得または設定し、Target オブジェクトが適用される TreeNode オブジェクトの TreeNodeBinding プロパティにバインドします。 |
Text |
TreeNodeBinding オブジェクトが適用されるノードに表示されるテキストを取得または設定します。 |
TextField |
データ ソースからフィールドの名前を取得または設定し、Text オブジェクトが適用される TreeNode オブジェクトの TreeNodeBinding プロパティにバインドします。 |
ToolTip |
TreeNodeBinding オブジェクトが適用されるノードのツールヒント テキストを取得または設定します。 |
ToolTipField |
データ ソースからフィールドの名前を取得または設定し、ToolTip オブジェクトが適用される TreeNode オブジェクトの TreeNodeBinding プロパティにバインドします。 |
Value |
TreeNodeBinding オブジェクトが適用されるノードの補足データ (ポストバック イベントの処理に使用するデータなど) を格納するために使用される、非表示の値を取得または設定します。 |
ValueField |
データ ソースからフィールドの名前を取得または設定し、Value オブジェクトが適用される TreeNode オブジェクトの TreeNodeBinding プロパティにバインドします。 |
メソッド
Equals(Object) |
指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。 (継承元 Object) |
GetHashCode() |
既定のハッシュ関数として機能します。 (継承元 Object) |
GetType() |
現在のインスタンスの Type を取得します。 (継承元 Object) |
MemberwiseClone() |
現在の Object の簡易コピーを作成します。 (継承元 Object) |
ToString() |
DataMember プロパティを返します。 |
明示的なインターフェイスの実装
ICloneable.Clone() |
TreeNodeBinding オブジェクトのコピーを作成します。 |
IDataSourceViewSchemaAccessor.DataSourceViewSchema |
このメンバーの詳細については、「DataSourceViewSchema」をご覧ください。 |
IStateManager.IsTrackingViewState |
このメンバーの詳細については、「IsTrackingViewState」をご覧ください。 |
IStateManager.LoadViewState(Object) |
以前に保存したノードのビューステートを読み込みます。 |
IStateManager.SaveViewState() |
ビューステートの変更をオブジェクトに保存します。 |
IStateManager.TrackViewState() |
ビュー ステートへの変更を追跡するように TreeNode オブジェクトに指示します。 |
適用対象
こちらもご覧ください
- TreeView
- TreeNode
- TreeNodeBindingCollection
- XmlDataSource
- DataBindings
- DataMember
- Depth
- FormatString
- ImageUrl
- ImageUrlField
- ImageToolTip
- ImageToolTipField
- NavigateUrl
- NavigateUrl
- NavigateUrlField
- PopulateOnDemand
- SelectAction
- ShowCheckBox
- Target
- Text
- Text
- TextField
- ToolTip
- ToolTip
- ToolTipField
- Value
- Value
- ValueField