次の方法で共有


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ツリーTitle内のすべてのノードのプロパティとValueプロパティをそれぞれデータ ソースのフィールドにIDバインドします。 プロパティとDepthプロパティが設定されていないため、DataMemberすべてのノードでこのツリー ノード バインド宣言が使用されます。
<asp:TreeNodeBinding DataMember= "Book" TextField= "Title" ValueField= "ID"/> ツリー内のすべてのノードのプロパティをIDValue、それぞれデータ ソース内のデータ項目のBookフィールドにバインドします。Title Text
<asp:TreeNodeBinding Depth="2" TextField= "Title" ValueField= "ID"/> ツリーTitleText深さが 2 のすべてのノードのプロパティとValueIDプロパティを、それぞれデータ ソース内のデータ項目のフィールドにバインドします。
<asp:TreeNodeBinding DataMember="Book" Depth= "2" TextField= "Title" ValueField= "ID" ImageUrl= "Image.jpg"> ツリーTitleText深さが 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 次の優先順位でツリー ノード バインドを適用します。

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

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

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

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

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

適用対象

こちらもご覧ください