TreeNodeBinding クラス

定義

データ項目とそのバインド先の 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 Value ツリー内のすべてのノードのプロパティとプロパティを、 Title ID データソースのフィールドとフィールドにそれぞれバインドします。 DataMemberプロパティとプロパティが設定されていないため、すべてのノードがこのツリーノードのバインド宣言を使用し Depth ます。
<asp:TreeNodeBinding DataMember= "Book" TextField= "Title" ValueField= "ID"/> Text Value ツリー内のすべてのノードのプロパティとプロパティを、 Title ID データソース内のデータ項目のフィールドとフィールドにそれぞれバインドし Book ます。
<asp:TreeNodeBinding Depth="2" TextField= "Title" ValueField= "ID"/> Text Value ツリー内の深さ2のすべてのノードのプロパティとプロパティを、 Title ID データソース内のデータ項目のフィールドとフィールドにそれぞれバインドします。
<asp:TreeNodeBinding DataMember="Book" Depth= "2" TextField= "Title" ValueField= "ID" ImageUrl= "Image.jpg"> Text Value ツリー内の深さ2のすべてのノードのプロパティとプロパティを、 Title ID データソース内のデータ項目のフィールドとフィールドに 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 対応するオブジェクトを作成するために、データ項目をオブジェクトと照合しようとし TreeNodeBinding TreeNode ます。

オブジェクトを作成するときは TreeNodeBinding 、バインドの条件を指定する必要があります。 条件は、データ項目をノードにバインドするタイミングを示します。 プロパティまたはプロパティを指定することも、両方のプロパティを指定することもでき Depth DataMember ます。 両方を指定すると、パフォーマンスがわずかに向上します。 ノードの深さは、バインドされるノードレベルを指定します。 たとえば、次の宣言は、 TreeNodeBinding Name 深度が ID 0 の Text Value すべてのノードのプロパティとプロパティにデータソースのフィールドとフィールドをバインドします。

<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 値にバインドできるオブジェクトのプロパティをバインドできます。 データ項目のフィールドまたは静的な値にバインドできます。 静的な値にバインドされ TreeNode ている場合、 TreeNodeBinding オブジェクトが適用されるすべてのオブジェクトが同じ値を共有します。

注意

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

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

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

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

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

競合 TreeNodeBinding するオブジェクトが定義されている場合、 TreeView コントロールは次の優先順位でツリーノードのバインドを適用します。

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

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

  3. TreeNodeBinding深さのみを定義して一致するオブジェクト。

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

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

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 オブジェクトに指示します。

適用対象

こちらもご覧ください