TreeNode Klasa

Definicja

Reprezentuje węzeł w kontrolce TreeView.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
Dziedziczenie
TreeNode
Implementuje

Przykłady

Poniższy przykład kodu demonstruje sposób konfigurowania ramek dla następnego przykładu kodu.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>

Poniższy przykład kodu demonstruje, jak używać składni deklaracyjnej do tworzenia obiektów TreeNode w kontrolce TreeView.The following code example demonstrates how to use declarative syntax to create TreeNode objects in the TreeView control. Ten przykład jest używany w zestawie ramek z poprzedniego przykładu do wyświetlania spisu treści.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>

Uwagi

Formant TreeView składa się z węzłów.The TreeView control is made up of nodes. Każdy wpis w drzewie jest nazywany węzłem i jest reprezentowany przez obiekt TreeNode.Each entry in the tree is called a node and is represented by a TreeNode object. Węzeł, który zawiera inne węzły, jest nazywany węzłem nadrzędnym.A node that contains other nodes is called a parent node. Węzeł, który jest zawarty w innym węźle, jest nazywany węzłem podrzędnym.A node that is contained by another node is called a child node. Węzeł, który nie ma węzłów podrzędnych, jest nazywany węzłem liścia.A node that has no child nodes is called a leaf node. Węzeł, który nie jest zawarty w żadnym innym węźle, ale jest elementem nadrzędnym dla wszystkich innych węzłów, jest węzłem głównym.A node that is not contained by any other node but is the ancestor to all the other nodes is the root node. Węzeł może być zarówno nadrzędnym, jak i podrzędnym, ale węzły główne, nadrzędne i liścia wzajemnie się wykluczają.A node can be both a parent and a child, but root, parent, and leaf nodes are mutually exclusive. Kilka właściwości wizualizacji i behawioralnych węzłów jest określana na podstawie tego, czy węzeł jest węzłem głównym, nadrzędnym, czy liściem .Several visual and behavioral properties of nodes are determined by whether a node is a root, parent, or leaf node.

Chociaż typowe drzewo ma tylko jeden węzeł główny, formant TreeView umożliwia dodanie wielu węzłów głównych do struktury drzewa.Although a typical tree has only one root node, the TreeView control allows you to add multiple root nodes to your tree structure. Jest to przydatne, gdy chcesz wyświetlić listy elementów bez wyświetlania jednego głównego węzła głównego, jak na liście kategorii produktów.This is useful when you want to display item listings without displaying a single main root node, as in a list of product categories.

Węzeł przede wszystkim przechowuje dane w dwóch właściwościach, właściwość Text i Właściwość Value.A node primarily stores data in two properties, the Text property and the Value property. Wartość właściwości Text jest wyświetlana w kontrolce TreeView, a właściwość Value służy do przechowywania wszelkich dodatkowych danych dotyczących węzła, takich jak dane używane do obsługi zdarzeń ogłaszania zwrotnego.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. Węzeł przechowuje również ścieżkę z węzła do jego węzła głównego we właściwości ValuePath.A node also stores the path from the node to its root node in the ValuePath property. Właściwość ValuePath wskazuje położenie węzła względem węzła głównego.The ValuePath property indicates the node's position relative to the root node.

Uwaga

Węzły na tym samym poziomie muszą mieć unikatową wartość właściwości Value; formant TreeView nie może rozróżnić różnych węzłów na tym samym poziomie, który ma tę samą wartość.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. W tym scenariuszu, jeśli użytkownik kliknie węzeł, który ma zduplikowaną wartość, zostanie zaznaczony węzeł, który jest wyświetlany jako pierwszy w kontrolce 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.

Obiekt TreeNode składa się z czterech następujących elementów interfejsu użytkownika (UI), które można dostosować lub ukryć:A TreeNode object is made up of the following four user interface (UI) elements, which can be customized or hidden:

  • Ikona wskaźnika węzła rozwinięcia służąca do wyświetlania, czy węzeł jest rozwinięty, zwinięty lub nie rozwijany.An expansion node indicator icon used to show whether the node is expanded, collapsed, or non-expandable.

  • Opcjonalne pole wyboru skojarzone z węzłem.An optional check box associated with the node.

  • Opcjonalny obraz węzła.An optional node image.

  • Tekst węzła.The node text.

Możesz określić niestandardowy obraz dla rozwijanych, zwijanych i nierozwijalnych wskaźników węzłów przez ustawienie właściwości ExpandImageUrl, CollapseImageUrli NoExpandImageUrl klasy TreeView.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. Ikony wskaźnika węzła rozwinięcia można nawet całkowicie ukryć, ustawiając właściwość ShowExpandCollapse klasy TreeView na false.The expansion node indicator icons can even be hidden entirely by setting the ShowExpandCollapse property of the TreeView class to false.

Aby wyświetlić pole wyboru obok węzła, ustaw właściwość ShowCheckBoxes klasy TreeView.To display a check box next to a node, set the ShowCheckBoxes property of the TreeView class. Gdy właściwość ShowCheckBoxes jest ustawiona na wartość inną niż TreeNodeType.Node, pola wyboru są wyświetlane obok określonego typu węzła.When the ShowCheckBoxes property is set to a value other than TreeNodeType.Node, check boxes are displayed next to the specified node type. Można selektywnie zastępować pole wyboru poszczególnych węzłów, ustawiając właściwość ShowCheckBox węzła.You can selectively override the check box of an individual node by setting the node's ShowCheckBox property. Gdy pole wyboru jest wyświetlane, użyj właściwości Checked, aby określić, czy pole wyboru jest zaznaczone.When a check box is displayed, use the Checked property to determine whether the check box is selected.

Możesz wyświetlić obraz w węźle, ustawiając właściwość ImageUrl.You can display an image in a node by setting the ImageUrl property. Ten obraz jest wyświetlany obok tekstu węzła.This image is displayed next to the node text.

Tekst węzła w kontrolce TreeView może być w jednym z dwóch trybów: tryb wyboru lub tryb nawigacji.The text of a node in the TreeView control can be in one of two modes: selection mode or navigation mode. Domyślnie węzeł jest w trybie wyboru.By default, a node is in selection mode. Aby umieścić węzeł w trybie nawigacji, ustaw właściwość NavigateUrl węzła na wartość inną niż pusty ciąg ("").To put a node into navigation mode, set the node's NavigateUrl property to a value other than an empty string (""). Aby umieścić węzeł w trybie zaznaczania, ustaw właściwość NavigateUrl węzła na pusty ciąg.To put a node into selection mode, set the node's NavigateUrl property to an empty string.

Uwaga

Niektóre przeglądarki internetowe mają ograniczenie, które mogą wpływać na wydajność formantu TreeView.Some Internet browsers have a limitation that can affect the performance of the TreeView control. Na przykład program Microsoft Internet Explorer 6,0 ma limit znaków adresu URL równy 2067 znaków.For example, Microsoft Internet Explorer 6.0 has a URL character limit of 2067 characters that it posts. Jeśli liczba znaków w adresie URL węzła jest większa niż ta liczba, rozszerzanie tego węzła zakończy się niepowodzeniem i nie zostanie zgłoszony żaden wyjątek.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.

Domyślnie kliknięcie węzła w trybie wyboru powoduje opublikowanie strony z powrotem na serwerze i wygeneruje zdarzenie SelectedNodeChanged.By default, clicking a node that is in selection mode posts the page back to the server and raises the SelectedNodeChanged event. Opcjonalnie możesz określić inne zdarzenie do podniesienia przez ustawienie właściwości SelectAction węzła.You can optionally specify a different event to raise by setting the node's SelectAction property. Aby uzyskać więcej informacji, zobacz SelectAction.For more information, see SelectAction. Aby określić, który węzeł został kliknięty w trybie zaznaczania, użyj właściwości SelectedNode kontrolki TreeView.To determine which node was clicked in selection mode, use the SelectedNode property of the TreeView control.

Gdy węzeł jest w trybie nawigacji, wszystkie zdarzenia wyboru są wyłączone dla tego węzła.When a node is in navigation mode, all selection events are disabled for that node. Kliknięcie węzła w trybie nawigacji kieruje użytkownika do określonego adresu URL.Clicking the node in navigation mode directs the user to the specified URL. Opcjonalnie możesz ustawić właściwość Target, aby określić okno lub ramkę, w której ma zostać wyświetlona zawartość połączona.You can optionally set the Target property to specify the window or frame in which to display the linked content.

Klasa TreeNode zawiera kilka właściwości, które są używane do przechowywania stanu węzła.The TreeNode class contains several properties that are used to store the state of the node. Użyj właściwości Selected, aby określić, czy węzeł jest zaznaczony.Use the Selected property to determine whether a node is selected. Aby określić, czy węzeł jest rozwinięty, użyj właściwości Expanded.To determine whether the node is expanded, use the Expanded property. Właściwość DataBound służy do określenia, czy węzeł jest powiązany z danymi.The DataBound property is used to determine whether a node is bound to data. Gdy węzeł jest powiązany z danymi, można uzyskać dostęp do bazowego elementu danych przy użyciu właściwości DataItem.When a node is bound to data, you can access the underlying data item by using the DataItem property.

Klasa zawiera kilka właściwości, które pomagają określić położenie węzła względem innych węzłów w drzewie.The class provides several properties that help to determine the position of a node relative to other nodes in the tree. Użyj właściwości Depth, aby określić głębokość węzła.Use the Depth property to determine the depth of the node. Można uzyskać rozdzieloną listę węzłów z bieżącego węzła do jego węzła głównego przy użyciu właściwości ValuePath.You can get the delimited list of nodes from the current node to its root node by using the ValuePath property. Aby określić węzeł nadrzędny węzła, użyj właściwości Parent.To determine the node's parent node, use the Parent property. Do węzłów podrzędnych uzyskuje się dostęp przy użyciu kolekcji ChildNodes.Child nodes are accessed using the ChildNodes collection.

Czasami nie można statycznie definiować struktury drzewa ze względu na rozmiar danych lub zawartość niestandardową, która zależy od danych wprowadzonych przez użytkownika.Sometimes, it is not practical to statically predefine the tree structure due to data size or custom content that depends on user input. W związku z tym formant TreeView obsługuje populację węzłów dynamicznych.Because of this, the TreeView control supports dynamic node population. Węzeł może być wypełniany w czasie wykonywania, gdy jest rozwinięty.A node can be populated at run time when it is expanded. Należy zauważyć, że w przypadku utrwalania asynchronicznie utworzonych węzłów można uzyskać nieoczekiwane zachowanie.Note that you can get unexpected behavior if you persist asynchronously created nodes. Na przykład w przypadku używania wątku roboczego w tle w celu asynchronicznego wypełniania węzłów drzewo węzłów może nie zostać wypełnione natychmiast, mimo że kontrolka kontynuuje pracę z pozostałą częścią cyklu życia strony.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. W przypadku ogłaszania zwrotnego opóźnione Tworzenie węzłów może spowodować problemy, gdy stan widoku formantu jest załadowany, ale drzewo węzła nie jest w pełni wypełnione.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. Aby uzyskać więcej informacji na temat wypełniania węzłów dynamicznych, zobacz Właściwość PopulateOnDemand.For more information on dynamic node population, see the PopulateOnDemand property.

Aby uzyskać listę początkowych wartości właściwości dla wystąpienia TreeNode, zapoznaj się z konstruktorem TreeNode.For a list of initial property values for an instance of TreeNode, see the TreeNode constructor.

Konstruktory

TreeNode()

Inicjuje nowe wystąpienie klasy TreeNode bez tekstu ani wartości.Initializes a new instance of the TreeNode class without text or a value.

TreeNode(String)

Inicjuje nowe wystąpienie klasy TreeNode przy użyciu określonego tekstu.Initializes a new instance of the TreeNode class using the specified text.

TreeNode(String, String)

Inicjuje nowe wystąpienie klasy TreeNode przy użyciu określonego tekstu i wartości.Initializes a new instance of the TreeNode class using the specified text and value.

TreeNode(String, String, String)

Inicjuje nowe wystąpienie klasy TreeNode przy użyciu określonego tekstu, wartości i adresu URL obrazu.Initializes a new instance of the TreeNode class using the specified text, value, and image URL.

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

Inicjuje nowe wystąpienie klasy TreeNode przy użyciu określonego tekstu, wartości, adresu URL obrazu, adresu URL nawigacji i celu.Initializes a new instance of the TreeNode class using the specified text, value, image URL, navigation URL, and target.

TreeNode(TreeView, Boolean)

Inicjuje nowe wystąpienie klasy TreeNode przy użyciu określonego właściciela.Initializes a new instance of the TreeNode class using the specified owner.

Właściwości

Checked

Pobiera lub ustawia wartość wskazującą, czy pole wyboru węzła jest zaznaczone.Gets or sets a value that indicates whether the node's check box is selected.

ChildNodes

Pobiera kolekcję TreeNodeCollection, która zawiera węzły podrzędne pierwszego poziomu bieżącego węzła.Gets a TreeNodeCollection collection that contains the first-level child nodes of the current node.

DataBound

Pobiera wartość wskazującą, czy węzeł został utworzony za pomocą powiązania danych.Gets a value that indicates whether the node was created through data binding.

DataItem

Pobiera element danych, który jest powiązany z kontrolką.Gets the data item that is bound to the control.

DataPath

Pobiera ścieżkę do danych powiązanych z węzłem.Gets the path to the data bound to the node.

Depth

Pobiera głębokość węzła.Gets the depth of the node.

Expanded

Pobiera lub ustawia wartość wskazującą, czy węzeł jest rozwinięty.Gets or sets a value that indicates whether the node is expanded.

ImageToolTip

Pobiera lub ustawia tekst etykietki narzędzia dla obrazu wyświetlanego obok węzła.Gets or sets the ToolTip text for the image displayed next to a node.

ImageUrl

Pobiera lub ustawia adres URL obrazu, który jest wyświetlany obok węzła.Gets or sets the URL to an image that is displayed next to the node.

IsTrackingViewState

Pobiera wartość wskazującą, czy węzeł zapisuje zmiany w stanie widoku.Gets a value that indicates whether the node is saving changes to its view state.

NavigateUrl

Pobiera lub ustawia adres URL, do którego ma nastąpić przejście po kliknięciu węzła.Gets or sets the URL to navigate to when the node is clicked.

Parent

Pobiera węzeł nadrzędny bieżącego węzła.Gets the parent node of the current node.

PopulateOnDemand

Pobiera lub ustawia wartość wskazującą, czy węzeł jest wypełniany dynamicznie.Gets or sets a value that indicates whether the node is populated dynamically.

SelectAction

Pobiera lub ustawia zdarzenie lub zdarzenia, które mają zostać podniesione w przypadku wybrania węzła.Gets or sets the event or events to raise when a node is selected.

Selected

Pobiera lub ustawia wartość wskazującą, czy węzeł jest zaznaczony.Gets or sets a value that indicates whether the node is selected.

ShowCheckBox

Pobiera lub ustawia wartość wskazującą, czy pole wyboru jest wyświetlane obok węzła.Gets or sets a value that indicates whether a check box is displayed next to the node.

Target

Pobiera lub ustawia okno docelowe lub ramkę, w której ma zostać wyświetlona zawartość strony sieci Web skojarzona z węzłem.Gets or sets the target window or frame in which to display the Web page content associated with a node.

Text

Pobiera lub ustawia tekst wyświetlany dla węzła w kontrolce TreeView.Gets or sets the text displayed for the node in the TreeView control.

ToolTip

Pobiera lub ustawia tekst etykietki narzędzia dla węzła.Gets or sets the ToolTip text for the node.

Value

Pobiera lub ustawia wartość niewyświetlaną służącą do przechowywania wszelkich dodatkowych danych dotyczących węzła, takich jak dane używane do obsługi zdarzeń ogłaszania zwrotnego.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

Pobiera ścieżkę z węzła głównego do bieżącego węzła.Gets the path from the root node to the current node.

Metody

Clone()

Tworzy nowe wystąpienie klasy TreeNode z właściwościami bieżącego wystąpienia TreeNode.Creates a new instance of the TreeNode class with the properties of the current TreeNode instance.

Collapse()

Zwija bieżący węzeł drzewa.Collapses the current tree node.

CollapseAll()

Zwija bieżący węzeł i wszystkie jego węzły podrzędne.Collapses the current node and all its child nodes.

Equals(Object)

Określa, czy określony obiekt jest równy bieżącemu obiektowi.Determines whether the specified object is equal to the current object.

(Odziedziczone po Object)
Expand()

Rozwija bieżący węzeł drzewa.Expands the current tree node.

ExpandAll()

Rozwija bieżący węzeł i wszystkie jego węzły podrzędne.Expands the current node and all its child nodes.

GetHashCode()

Służy jako domyślna funkcja skrótu.Serves as the default hash function.

(Odziedziczone po Object)
GetType()

Pobiera Type bieżącego wystąpienia.Gets the Type of the current instance.

(Odziedziczone po Object)
LoadViewState(Object)

Ładuje wcześniej zapisany stan widoku węzła.Loads the previously saved view state of the node.

MemberwiseClone()

Tworzy skróconą kopię bieżącego Object.Creates a shallow copy of the current Object.

(Odziedziczone po Object)
RenderPostText(HtmlTextWriter)

Umożliwia deweloperom kontrolek Dodawanie dodatkowych renderingu do węzła.Allows control developers to add additional rendering to the node.

RenderPreText(HtmlTextWriter)

Umożliwia deweloperom kontrolek Dodawanie dodatkowych renderingu do węzła.Allows control developers to add additional rendering to the node.

SaveViewState()

Zapisuje bieżący stan widoku węzła.Saves the current view state of the node.

Select()

Wybiera bieżący węzeł w kontrolce TreeView.Selects the current node in the TreeView control.

ToggleExpandState()

Alternatywy między rozwiniętym i zwiniętym stanem węzła.Alternates between the expanded and collapsed state of the node.

ToString()

Zwraca ciąg, który reprezentuje bieżący obiekt.Returns a string that represents the current object.

(Odziedziczone po Object)
TrackViewState()

Oznacza punkt początkowy, od którego ma zostać rozpoczęte śledzenie i zapisywanie zmian stanu widoku w węźle.Marks the starting point at which to begin tracking and saving view state changes to the node.

Jawne implementacje interfejsu

ICloneable.Clone()

Tworzy kopię obiektu TreeNode.Creates a copy of the TreeNode object.

IStateManager.IsTrackingViewState

Aby uzyskać opis tego elementu członkowskiego, zobacz IsTrackingViewState.For a description of this member, see IsTrackingViewState.

IStateManager.LoadViewState(Object)

Ładuje stan widoku poprzednio zapisanego węzła.Loads the node's previously saved view state.

IStateManager.SaveViewState()

Zapisuje zmiany stanu widoku w Object.Saves the view state changes to a Object.

IStateManager.TrackViewState()

Powoduje, że obiekt TreeNode śledzi zmiany stanu widoku.Instructs the TreeNode object to track changes to its view state.

Dotyczy

Zobacz też