TreeNode クラス

定義

TreeView コントロール内の 1 つのノードを表します。Represents a node in the TreeView control.

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
実装

次のコード例では、フレームを設定する方法を示します。The following code example demonstrates how to set up the frames for the next code example.


<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>

宣言型の構文を使用して、TreeView コントロールに TreeNode オブジェクトを作成する方法を次のコード例に示します。The following code example demonstrates how to use declarative syntax to create TreeNode objects in the TreeView control. この例は、前の例のフレームセット内で、目次を表示するために使用されます。This example is used within the frameset of the previous example to display a table of contents.


<%@ 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 コントロールは、ノードで構成されます。The TreeView control is made up of nodes. ツリー内の各エントリはノードと呼ばれ、TreeNode オブジェクトによって表されます。Each entry in the tree is called a node and is represented by a TreeNode object. 他のノードを含むノードは、親ノードと呼ばれます。A node that contains other nodes is called a parent node. 別のノードに含まれるノードは、子ノードと呼ばれます。A node that is contained by another node is called a child node. 子ノードを持たないノードは、リーフノードと呼ばれます。A node that has no child nodes is called a leaf node. 他のノードに含まれていないノードが、他のすべてのノードの先祖であるノードがルートノードです。A node that is not contained by any other node but is the ancestor to all the other nodes is the root node. ノードには親と子の両方を指定できますが、ルートノード、親ノード、およびリーフノードは相互に排他的です。A node can be both a parent and a child, but root, parent, and leaf nodes are mutually exclusive. ノードのビジュアルおよび動作プロパティのいくつかは、ノードがルートノード、ノード、またはリーフノードのどちらであるかによって決まります。Several visual and behavioral properties of nodes are determined by whether a node is a root, parent, or leaf node.

一般的なツリーにはルートノードが1つしかありませんが、TreeView コントロールを使用すると、複数のルートノードをツリー構造に追加できます。Although a typical tree has only one root node, the TreeView control allows you to add multiple root nodes to your tree structure. これは、製品カテゴリの一覧のように、単一のメインルートノードを表示せずに項目の一覧を表示する場合に便利です。This is useful when you want to display item listings without displaying a single main root node, as in a list of product categories.

ノードは、主に、Text プロパティと Value プロパティの2つのプロパティにデータを格納します。A node primarily stores data in two properties, the Text property and the Value property. Text プロパティの値が TreeView コントロールに表示され、Value プロパティを使用して、ノードに関する追加データ (ポストバックイベントの処理に使用されるデータなど) が格納されます。The value of the Text property is displayed in the TreeView control, and the Value property is used to store any additional data about the node, such as data used for handling postback events. ノードは、ノードからのパスを ValuePath プロパティのルートノードにも格納します。A node also stores the path from the node to its root node in the ValuePath property. ValuePath プロパティは、ノードのルートノードを基準とした相対的な位置を示します。The ValuePath property indicates the node's position relative to the root node.

注意

同じレベルのノードは、それぞれ Value プロパティに一意の値を持つ必要があります。TreeView コントロールは、同じレベルの同じ値を持つ異なるノードを区別できません。Nodes at the same level must each have a unique value for the Value property; the TreeView control cannot distinguish between different nodes at the same level that have the same value. このシナリオでは、値が重複しているノードをユーザーがクリックすると、TreeView コントロールの最初に表示されるノードが選択されます。In this scenario, if the user clicks a node that has a duplicate value, the node that appears first in the TreeView control is selected.

TreeNode オブジェクトは、カスタマイズまたは非表示にできる次の4つのユーザーインターフェイス (UI) 要素で構成されています。A TreeNode object is made up of the following four user interface (UI) elements, which can be customized or hidden:

  • ノードが展開されているか、折りたたまれているか、または展開できないかを示すために使用される展開ノードインジケーターアイコン。An expansion node indicator icon used to show whether the node is expanded, collapsed, or non-expandable.

  • ノードに関連付けられているオプションのチェックボックス。An optional check box associated with the node.

  • 省略可能なノードイメージ。An optional node image.

  • ノードテキスト。The node text.

TreeView クラスの ExpandImageUrlCollapseImageUrl、および NoExpandImageUrl の各プロパティを設定することによって、展開、折りたたみ、および展開できないノードインジケーターのカスタムイメージを指定できます。You can specify a custom image for the expandable, collapsible, and non-expandable node indicators by setting the ExpandImageUrl, CollapseImageUrl, and NoExpandImageUrl properties of the TreeView class. 展開ノードインジケーターアイコンは、TreeView クラスの ShowExpandCollapse プロパティを falseに設定することによって、完全に非表示にすることもできます。The expansion node indicator icons can even be hidden entirely by setting the ShowExpandCollapse property of the TreeView class to false.

ノードの横にチェックボックスを表示するには、TreeView クラスの ShowCheckBoxes プロパティを設定します。To display a check box next to a node, set the ShowCheckBoxes property of the TreeView class. ShowCheckBoxes プロパティが TreeNodeType.Node以外の値に設定されている場合は、指定したノードの種類の横にチェックボックスが表示されます。When the ShowCheckBoxes property is set to a value other than TreeNodeType.Node, check boxes are displayed next to the specified node type. ノードの ShowCheckBox プロパティを設定することによって、個々のノードのチェックボックスを選択的に上書きできます。You can selectively override the check box of an individual node by setting the node's ShowCheckBox property. チェックボックスが表示されたら、[Checked] プロパティを使用して、チェックボックスがオンになっているかどうかを確認します。When a check box is displayed, use the Checked property to determine whether the check box is selected.

ノードに画像を表示するには、[ImageUrl] プロパティを設定します。You can display an image in a node by setting the ImageUrl property. このイメージは、ノードテキストの横に表示されます。This image is displayed next to the node text.

TreeView コントロールのノードのテキストは、選択モードまたはナビゲーションモードの2つのモードのいずれかになります。The text of a node in the TreeView control can be in one of two modes: selection mode or navigation mode. 既定では、ノードは選択モードになっています。By default, a node is in selection mode. ノードをナビゲーションモードにするには、ノードの NavigateUrl プロパティを空の文字列 ("") 以外の値に設定します。To put a node into navigation mode, set the node's NavigateUrl property to a value other than an empty string (""). ノードを選択モードにするには、ノードの NavigateUrl プロパティを空の文字列に設定します。To put a node into selection mode, set the node's NavigateUrl property to an empty string.

注意

一部のインターネットブラウザーでは、TreeView コントロールのパフォーマンスに影響する可能性がある制限があります。Some Internet browsers have a limitation that can affect the performance of the TreeView control. たとえば、Microsoft Internet Explorer 6.0 では、URL 文字の制限である2067文字が投稿されます。For example, Microsoft Internet Explorer 6.0 has a URL character limit of 2067 characters that it posts. ノードの URL の文字数がその数値よりも大きい場合、そのノードを展開すると失敗し、例外はスローされません。If the number of characters in a URL of a node is larger than that number, expanding that node will fail and no exception is thrown.

既定では、選択モードのノードをクリックすると、そのページがサーバーにポストバックされ、SelectedNodeChanged イベントが発生します。By default, clicking a node that is in selection mode posts the page back to the server and raises the SelectedNodeChanged event. 必要に応じて、ノードの SelectAction プロパティを設定して、発生させる別のイベントを指定することもできます。You can optionally specify a different event to raise by setting the node's SelectAction property. 詳細については、「SelectAction」を参照してください。For more information, see SelectAction. 選択モードでクリックされたノードを確認するには、TreeView コントロールの SelectedNode プロパティを使用します。To determine which node was clicked in selection mode, use the SelectedNode property of the TreeView control.

ノードがナビゲーションモードの場合は、そのノードのすべての選択イベントが無効になります。When a node is in navigation mode, all selection events are disabled for that node. ナビゲーションモードでノードをクリックすると、指定した URL にユーザーがリダイレクトされます。Clicking the node in navigation mode directs the user to the specified URL. 必要に応じて、[Target] プロパティを設定して、リンクされたコンテンツを表示するウィンドウまたはフレームを指定することもできます。You can optionally set the Target property to specify the window or frame in which to display the linked content.

TreeNode クラスには、ノードの状態を格納するために使用されるいくつかのプロパティが含まれています。The TreeNode class contains several properties that are used to store the state of the node. ノードが選択されているかどうかを判断するには、Selected プロパティを使用します。Use the Selected property to determine whether a node is selected. ノードが展開されているかどうかを確認するには、Expanded プロパティを使用します。To determine whether the node is expanded, use the Expanded property. DataBound プロパティは、ノードがデータにバインドされているかどうかを判断するために使用されます。The DataBound property is used to determine whether a node is bound to data. ノードがデータにバインドされている場合は、DataItem プロパティを使用して基になるデータ項目にアクセスできます。When a node is bound to data, you can access the underlying data item by using the DataItem property.

クラスには、ツリー内の他のノードに対するノードの相対的な位置を特定するのに役立ついくつかのプロパティが用意されています。The class provides several properties that help to determine the position of a node relative to other nodes in the tree. ノードの深さを確認するには、Depth プロパティを使用します。Use the Depth property to determine the depth of the node. ValuePath プロパティを使用すると、ノードの一覧を現在のノードからルートノードに取得できます。You can get the delimited list of nodes from the current node to its root node by using the ValuePath property. ノードの親ノードを特定するには、Parent プロパティを使用します。To determine the node's parent node, use the Parent property. 子ノードには、ChildNodes コレクションを使用してアクセスします。Child nodes are accessed using the ChildNodes collection.

場合によっては、ユーザー入力に依存するデータサイズやカスタムコンテンツによってツリー構造を静的に定義するのは現実的ではありません。Sometimes, it is not practical to statically predefine the tree structure due to data size or custom content that depends on user input. このため、TreeView コントロールは動的なノードの作成をサポートしています。Because of this, the TreeView control supports dynamic node population. ノードは、展開されたときに実行時に設定できます。A node can be populated at run time when it is expanded. 非同期的に作成されたノードを永続化すると、予期しない動作が発生することに注意してください。Note that you can get unexpected behavior if you persist asynchronously created nodes. たとえば、バックグラウンドワーカースレッドを使用してノードを非同期に設定した場合、コントロールがページライフサイクルの残りの部分を処理しても、すぐにノードツリーが設定されないことがあります。For example, if you use a background worker thread to populate nodes asynchronously, the node tree might not be populated immediately though the control proceeds with the rest of the page life cycle. ポストバック時に、ノードの作成が遅延すると、コントロールのビューステートが読み込まれてもノードツリーが完全に設定されていない場合に問題が発生する可能性があります。On postback, the delayed creation of the nodes can cause problems when the control's view state is loaded but the node tree is not fully populated. 動的ノードの作成の詳細については、PopulateOnDemand プロパティを参照してください。For more information on dynamic node population, see the PopulateOnDemand property.

TreeNodeのインスタンスの初期プロパティ値の一覧については、TreeNode コンストラクターを参照してください。For a list of initial property values for an instance of TreeNode, see the TreeNode constructor.

コンストラクター

TreeNode()

テキストや値を使用せずに、TreeNode クラスの新しいインスタンスを初期化します。Initializes a new instance of the TreeNode class without text or a value.

TreeNode(String)

テキストを指定して、TreeNode クラスの新しいインスタンスを初期化します。Initializes a new instance of the TreeNode class using the specified text.

TreeNode(String, String)

テキストと値を指定して、TreeNode クラスの新しいインスタンスを初期化します。Initializes a new instance of the TreeNode class using the specified text and value.

TreeNode(String, String, String)

テキスト、値、およびイメージの URL を指定して、TreeNode クラスの新しいインスタンスを初期化します。Initializes a new instance of the TreeNode class using the specified text, value, and image URL.

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

テキスト、値、イメージの URL、ナビゲーション URL、および表示先を指定して、TreeNode クラスの新しいインスタンスを初期化します。Initializes a new instance of the TreeNode class using the specified text, value, image URL, navigation URL, and target.

TreeNode(TreeView, Boolean)

所有者を指定して、TreeNode クラスの新しいインスタンスを初期化します。Initializes a new instance of the TreeNode class using the specified owner.

プロパティ

Checked

ノードのチェック ボックスがオンかオフかを示す値を取得または設定します。Gets or sets a value that indicates whether the node's check box is selected.

ChildNodes

現在のノードの第 1 レベルの子ノードを格納する TreeNodeCollection コレクションを取得します。Gets a TreeNodeCollection collection that contains the first-level child nodes of the current node.

DataBound

ノードがデータ バインディングによって作成されたかどうかを示す値を取得します。Gets a value that indicates whether the node was created through data binding.

DataItem

コントロールにバインドされたデータ項目を取得します。Gets the data item that is bound to the control.

DataPath

ノードにバインドされたデータへのパスを取得します。Gets the path to the data bound to the node.

Depth

ノードの深さを取得します。Gets the depth of the node.

Expanded

ノードが展開されているかどうかを示す値を取得または設定します。Gets or sets a value that indicates whether the node is expanded.

ImageToolTip

ノードの隣に表示されるイメージのツールヒントのテキストを取得または設定します。Gets or sets the ToolTip text for the image displayed next to a node.

ImageUrl

ノードの隣に表示されるイメージへの URL を取得または設定します。Gets or sets the URL to an image that is displayed next to the node.

IsTrackingViewState

ノードがビューステートへの変更を保存しているかどうかを示す値を取得します。Gets a value that indicates whether the node is saving changes to its view state.

NavigateUrl

ノードがクリックされたときの移動先 URL を取得または設定します。Gets or sets the URL to navigate to when the node is clicked.

Parent

現在のノードの親ノードを取得します。Gets the parent node of the current node.

PopulateOnDemand

ノードにデータが動的に設定されるかどうかを示す値を取得または設定します。Gets or sets a value that indicates whether the node is populated dynamically.

SelectAction

ノードの選択時に発生させる 1 つ以上のイベントを取得または設定します。Gets or sets the event or events to raise when a node is selected.

Selected

ノードが選択されているかどうかを示す値を取得または設定します。Gets or sets a value that indicates whether the node is selected.

ShowCheckBox

ノードの隣にチェック ボックスが表示されるどうかを示す値を取得または設定します。Gets or sets a value that indicates whether a check box is displayed next to the node.

Target

ノードに関連付けられている Web ページの内容を表示する対象のウィンドウまたはフレームを取得または設定します。Gets or sets the target window or frame in which to display the Web page content associated with a node.

Text

TreeView コントロールのノードに表示されるテキストを取得または設定します。Gets or sets the text displayed for the node in the TreeView control.

ToolTip

このノードのツールヒントのテキストを取得または設定します。Gets or sets the ToolTip text for the node.

Value

ノードの補足データ (ポストバック イベントを処理するために使用するデータなど) を格納するために使用される、非表示の値を取得または設定します。Gets or sets a non-displayed value used to store any additional data about the node, such as data used for handling postback events.

ValuePath

ルート ノードから現在のノードまでのパスを取得します。Gets the path from the root node to the current node.

メソッド

Clone()

現在の TreeNode インスタンスのプロパティを使用して、TreeNode クラスの新しいインスタンスを作成します。Creates a new instance of the TreeNode class with the properties of the current TreeNode instance.

Collapse()

現在のツリー ノードを折りたたみます。Collapses the current tree node.

CollapseAll()

現在のノードとそのすべての子ノードを折りたたみます。Collapses the current node and all its child nodes.

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判定します。Determines whether the specified object is equal to the current object.

(継承元 Object)
Expand()

現在のツリー ノードを展開します。Expands the current tree node.

ExpandAll()

現在のノードとそのすべての子ノードを展開します。Expands the current node and all its child nodes.

GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(継承元 Object)
LoadViewState(Object)

以前に保存したノードのビューステートを読み込みます。Loads the previously saved view state of the node.

MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(継承元 Object)
RenderPostText(HtmlTextWriter)

コントロール開発者がノードに追加表示を追加できるようにします。Allows control developers to add additional rendering to the node.

RenderPreText(HtmlTextWriter)

コントロール開発者がノードに追加表示を追加できるようにします。Allows control developers to add additional rendering to the node.

SaveViewState()

ノードの現在のビューステートを保存します。Saves the current view state of the node.

Select()

TreeView コントロールの現在のノードを選択します。Selects the current node in the TreeView control.

ToggleExpandState()

ノードを展開した状態または折りたたんだ状態に切り替えます。Alternates between the expanded and collapsed state of the node.

ToString()

現在のオブジェクトを表す string を返します。Returns a string that represents the current object.

(継承元 Object)
TrackViewState()

ノードに対するビューステートの変更の追跡と保存を始める開始点にマークを付けます。Marks the starting point at which to begin tracking and saving view state changes to the node.

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

ICloneable.Clone()

TreeNode オブジェクトのコピーを作成します。Creates a copy of the TreeNode object.

IStateManager.IsTrackingViewState

このメンバーの詳細については、「IsTrackingViewState」をご覧ください。For a description of this member, see IsTrackingViewState.

IStateManager.LoadViewState(Object)

前回保存されたノードのビューステートを読み込みます。Loads the node's previously saved view state.

IStateManager.SaveViewState()

ビューステートの変更を Object に保存します。Saves the view state changes to a Object.

IStateManager.TrackViewState()

ビュー ステートへの変更を追跡するように TreeNode オブジェクトに指示します。Instructs the TreeNode object to track changes to its view state.

適用対象

こちらもご覧ください