TreeNode クラス

定義

TreeView コントロール内の 1 つのノードを表します。

public ref class TreeNode : ICloneable, System::Web::UI::IStateManager
public class TreeNode : ICloneable, System.Web.UI.IStateManager
type TreeNode = class
    interface IStateManager
    interface ICloneable
Public Class TreeNode
Implements ICloneable, IStateManager
継承
TreeNode
実装

次のコード例では、次のコード例のフレームを設定する方法を示します。


<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>TreeView Frameset Example</title>
</head>
         
    <frameset cols="30%, 75%">
   
        <frame title="MenuFrame" name="Menu" src="TreeViewFramecs.aspx"/>
        <frame title="ContentFrame" name="Content" src="Home.aspx"/> 
           
    </frameset>      
   
</html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>TreeView Frameset Example</title>
</head>
         
    <frameset cols="30%, 75%">
   
        <frame title="MenuFrame" name="Menu" src="TreeViewFramevb.aspx"/>
        <frame title="ContentFrame" name="Content" src="Home.aspx"/> 
           
    </frameset>      
   
</html>

次のコード例では、宣言型構文を使用してコントロールにオブジェクトを作成 TreeNode する方法を TreeView 示します。 この例は、前の例のフレームセット内で目次を表示するために使用します。


<%@ 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 Declarative Syntax Example</title>
</head>
<body>
    <form id="form1" runat="server">
    
      <h3>TreeView Declarative Syntax Example</h3>
      
      <asp:TreeView id="SampleTreeView" 
        runat="server">
         
        <Nodes>
        
          <asp:TreeNode Value="Home" 
            NavigateUrl="Home.aspx" 
            Text="Home"
            Target="Content" 
            Expanded="True">
             
            <asp:TreeNode Value="Page 1" 
              NavigateUrl="Page1.aspx" 
              Text="Page1"
              Target="Content">
               
              <asp:TreeNode Value="Section 1" 
                NavigateUrl="Section1.aspx" 
                Text="Section 1"
                Target="Content"/>
                 
            </asp:TreeNode>              
            
            <asp:TreeNode Value="Page 2" 
              NavigateUrl="Page2.aspx"
              Text="Page 2"
              Target="Content">
               
            </asp:TreeNode> 
            
          </asp:TreeNode>
        
        </Nodes>
        
      </asp:TreeView>

    </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 Declarative Syntax Example</title>
</head>
<body>
    <form id="form1" runat="server">
    
      <h3>TreeView Declarative Syntax Example</h3>
      
      <asp:TreeView id="SampleTreeView" 
        runat="server">
         
        <Nodes>
        
          <asp:TreeNode Value="Home" 
            NavigateUrl="Home.aspx" 
            Text="Home"
            Target="Content" 
            Expanded="True">
             
            <asp:TreeNode Value="Page 1" 
              NavigateUrl="Page1.aspx" 
              Text="Page1"
              Target="Content">
               
              <asp:TreeNode Value="Section 1" 
                NavigateUrl="Section1.aspx" 
                Text="Section 1"
                Target="Content"/>
                 
            </asp:TreeNode>              
            
            <asp:TreeNode Value="Page 2" 
              NavigateUrl="Page2.aspx"
              Text="Page 2"
              Target="Content">
               
            </asp:TreeNode> 
            
          </asp:TreeNode>
        
        </Nodes>
        
      </asp:TreeView>

    </form>
  </body>
</html>

注釈

コントロールは TreeView ノードで構成されます。 ツリー内の各エントリはノードと呼ばれ、オブジェクトによって TreeNode 表されます。 他のノードを含むノードは、 親ノードと呼ばれます。 別のノードに含まれるノードは、 子ノードと呼ばれます。 子ノードを持たないノードは、 リーフ ノードと呼ばれます。 他のノードには含まれていないが、他のすべてのノードの先祖であるノードは ルート ノードです。 ノードは親と子の両方にすることができますが、ルート ノード、親ノード、リーフ ノードは相互に排他的です。 ノードのいくつかの視覚的および動作プロパティは、ノードが ルート ノード、 ノード、 またはリーフ ノードのいずれであるかによって決まります。

一般的なツリーにはルート ノードが 1 つだけありますが TreeView 、コントロールを使用すると、ツリー構造に複数のルート ノードを追加できます。 これは、製品カテゴリの一覧のように、単一のメインルート ノードを表示せずに項目一覧を表示する場合に便利です。

ノードは主に、 プロパティと プロパティの 2 つのプロパティに Text データを Value 格納します。 プロパティの Text 値がコントロールに TreeView 表示され Value 、 プロパティはポストバック イベントの処理に使用されるデータなど、ノードに関する追加のデータを格納するために使用されます。 ノードは、ノードからそのルート ノードへのパスも プロパティに ValuePath 格納します。 プロパティは ValuePath 、ルート ノードに対するノードの位置を示します。

注意

同じレベルのノードは、それぞれ プロパティTreeViewに対して一意の値をValue持つ必要があります。コントロールは、同じ値を持つ同じレベルの異なるノードを区別できません。 このシナリオでは、ユーザーが重複する値を持つノードをクリックすると、コントロールの最初に TreeView 表示されるノードが選択されます。

TreeNodeオブジェクトは、カスタマイズまたは非表示にできる次の 4 つのユーザー インターフェイス (UI) 要素で構成されます。

  • ノードが展開されているか、折りたたまれているか、または展開できないかを示すために使用される展開ノード インジケーター アイコン。

  • ノードに関連付けられている省略可能なチェック ボックス。

  • オプションのノード イメージ。

  • ノード テキスト。

クラスの 、、および NoExpandImageUrl プロパティを設定ExpandImageUrlCollapseImageUrlすることで、展開可能、折りたたみ可能、および展開不可能なノード インジケーターのカスタム イメージをTreeView指定できます。 拡張ノード インジケーター アイコンは、 クラスfalseTreeView プロパティを ShowExpandCollapse に設定することで、完全に非表示にすることもできます。

ノードの横にチェック ボックスを表示するには、 クラスの プロパティをShowCheckBoxesTreeView設定します。 プロパティが 以外TreeNodeType.NodeShowCheckBoxes値に設定されている場合は、指定したノードの種類の横にチェックボックスが表示されます。 ノードの プロパティを設定することで、個々のノードのチェック ボックスを選択的にShowCheckBoxオーバーライドできます。 チェック ボックスが表示されたら、 プロパティをChecked使用して、チェック ボックスが選択されているかどうかを確認します。

プロパティを設定すると、ノードにイメージを ImageUrl 表示できます。 このイメージはノード テキストの横に表示されます。

コントロール内 TreeView のノードのテキストは、選択モードまたはナビゲーション モードの 2 つのモードのいずれかになります。 既定では、ノードは選択モードです。 ノードをナビゲーション モードにするには、ノードの プロパティを空の NavigateUrl 文字列 ("") 以外の値に設定します。 ノードを選択モードにするには、ノードの プロパティを空の NavigateUrl 文字列に設定します。

注意

一部のインターネット ブラウザーには、コントロールのパフォーマンスに影響を与える可能性がある制限があります TreeView 。 たとえば、Microsoft Internet エクスプローラー 6.0 の URL 文字制限は 2067 文字です。 ノードの URL の文字数がその数を超える場合、そのノードの展開は失敗し、例外はスローされません。

既定では、選択モードのノードをクリックすると、ページがサーバーにポストバックされ、イベントが発生します SelectedNodeChanged 。 必要に応じて、ノードの プロパティを設定して、発生させる別の SelectAction イベントを指定できます。 詳細については、「SelectAction」を参照してください。 選択モードでクリックされたノードを確認するには、 コントロールの プロパティをTreeView使用SelectedNodeします。

ノードがナビゲーション モードの場合、そのノードのすべての選択イベントが無効になります。 ナビゲーション モードでノードをクリックすると、ユーザーは指定した URL に移動します。 必要に応じて、 プロパティを Target 設定して、リンクされたコンテンツを表示するウィンドウまたはフレームを指定できます。

TreeNodeクラスには、ノードの状態を格納するために使用されるいくつかのプロパティが含まれています。 ノードが Selected 選択されているかどうかを判断するには、 プロパティを使用します。 ノードが展開されているかどうかを確認するには、 プロパティを使用します Expanded 。 プロパティは DataBound 、ノードがデータにバインドされているかどうかを判断するために使用されます。 ノードがデータにバインドされている場合は、 プロパティを使用して基になるデータ項目に DataItem アクセスできます。

クラスには、ツリー内の他のノードとの相対的なノードの位置を決定するのに役立ついくつかのプロパティが用意されています。 プロパティを Depth 使用して、ノードの深さを決定します。 プロパティを使用して、現在のノードからルート ノードへのノードの区切りリストを ValuePath 取得できます。 ノードの親ノードを確認するには、 プロパティを Parent 使用します。 子ノードには、 コレクションを ChildNodes 使用してアクセスします。

場合によっては、データ サイズやユーザー入力に依存するカスタム コンテンツのために、ツリー構造を静的に事前に定義することは実用的ではありません。 このため、コントロールは TreeView 動的ノードの作成をサポートしています。 ノードは、展開時に設定できます。 非同期に作成されたノードを永続化すると、予期しない動作が発生する可能性があることに注意してください。 たとえば、バックグラウンド ワーカー スレッドを使用してノードを非同期に設定した場合、コントロールはページ ライフ サイクルの残りの部分で続行されますが、ノード ツリーがすぐに設定されないことがあります。 ポストバック時に、コントロールのビューステートが読み込まれているが、ノード ツリーが完全には設定されていない場合、ノードの作成が遅延すると問題が発生する可能性があります。 動的ノードの作成の詳細については、 プロパティを PopulateOnDemand 参照してください。

のインスタンスの初期プロパティ値の TreeNode一覧については、 コンストラクターを TreeNode 参照してください。

コンストラクター

TreeNode()

テキストや値を使用せずに、TreeNode クラスの新しいインスタンスを初期化します。

TreeNode(String)

テキストを指定して、TreeNode クラスの新しいインスタンスを初期化します。

TreeNode(String, String)

テキストと値を指定して、TreeNode クラスの新しいインスタンスを初期化します。

TreeNode(String, String, String)

テキスト、値、およびイメージの URL を指定して、TreeNode クラスの新しいインスタンスを初期化します。

TreeNode(String, String, String, String, String)

テキスト、値、イメージの URL、ナビゲーション URL、および表示先を指定して、TreeNode クラスの新しいインスタンスを初期化します。

TreeNode(TreeView, Boolean)

所有者を指定して、TreeNode クラスの新しいインスタンスを初期化します。

プロパティ

Checked

ノードのチェック ボックスがオンかオフかを示す値を取得または設定します。

ChildNodes

現在のノードの第 1 レベルの子ノードを格納する TreeNodeCollection コレクションを取得します。

DataBound

ノードがデータ バインディングによって作成されたかどうかを示す値を取得します。

DataItem

コントロールにバインドされたデータ項目を取得します。

DataPath

ノードにバインドされたデータへのパスを取得します。

Depth

ノードの深さを取得します。

Expanded

ノードが展開されているかどうかを示す値を取得または設定します。

ImageToolTip

ノードの隣に表示されるイメージのツールヒントのテキストを取得または設定します。

ImageUrl

ノードの隣に表示されるイメージへの URL を取得または設定します。

IsTrackingViewState

ノードがビューステートへの変更を保存しているかどうかを示す値を取得します。

NavigateUrl

ノードがクリックされたときの移動先 URL を取得または設定します。

Parent

現在のノードの親ノードを取得します。

PopulateOnDemand

ノードにデータが動的に設定されるかどうかを示す値を取得または設定します。

SelectAction

ノードの選択時に発生させる 1 つ以上のイベントを取得または設定します。

Selected

ノードが選択されているかどうかを示す値を取得または設定します。

ShowCheckBox

ノードの隣にチェック ボックスが表示されるどうかを示す値を取得または設定します。

Target

ノードに関連付けられている Web ページの内容を表示する対象のウィンドウまたはフレームを取得または設定します。

Text

TreeView コントロールのノードに表示されるテキストを取得または設定します。

ToolTip

このノードのツールヒントのテキストを取得または設定します。

Value

ノードの補足データ (ポストバック イベントを処理するために使用するデータなど) を格納するために使用される、非表示の値を取得または設定します。

ValuePath

ルート ノードから現在のノードまでのパスを取得します。

メソッド

Clone()

現在の TreeNode インスタンスのプロパティを使用して、TreeNode クラスの新しいインスタンスを作成します。

Collapse()

現在のツリー ノードを折りたたみます。

CollapseAll()

現在のノードとそのすべての子ノードを折りたたみます。

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
Expand()

現在のツリー ノードを展開します。

ExpandAll()

現在のノードとそのすべての子ノードを展開します。

GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
LoadViewState(Object)

以前に保存したノードのビューステートを読み込みます。

MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
RenderPostText(HtmlTextWriter)

コントロール開発者がノードに追加表示を追加できるようにします。

RenderPreText(HtmlTextWriter)

コントロール開発者がノードに追加表示を追加できるようにします。

SaveViewState()

ノードの現在のビューステートを保存します。

Select()

TreeView コントロールの現在のノードを選択します。

ToggleExpandState()

ノードを展開した状態または折りたたんだ状態に切り替えます。

ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)
TrackViewState()

ノードに対するビューステートの変更の追跡と保存を始める開始点にマークを付けます。

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

ICloneable.Clone()

TreeNode オブジェクトのコピーを作成します。

IStateManager.IsTrackingViewState

このメンバーの詳細については、「IsTrackingViewState」をご覧ください。

IStateManager.LoadViewState(Object)

前回保存されたノードのビューステートを読み込みます。

IStateManager.SaveViewState()

ビューステートの変更を Object に保存します。

IStateManager.TrackViewState()

ビュー ステートへの変更を追跡するように TreeNode オブジェクトに指示します。

適用対象

こちらもご覧ください