TreeNode Класс

Определение

Представляет узел в элементе управления 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
Наследование
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>

В следующем примере кода показано, как использовать декларативный синтаксис для создания TreeNode объектов в элементе управления TreeView.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.

Хотя типичное дерево имеет только один корневой узел, элемент управления 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.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 состоит из следующих четырех элементов пользовательского интерфейса, которые могут быть настроены или скрыты: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.

Можно указать пользовательский образ для развертываемых, свертываемых и неразвертываемых индикаторов узлов, задав свойства ExpandImageUrl, CollapseImageUrlи NoExpandImageUrl класса 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. Значки индикаторов узла расширения можно даже скрыть полностью, задав для свойства ShowExpandCollapse класса TreeView значение false.The expansion node indicator icons can even be hidden entirely by setting the ShowExpandCollapse property of the TreeView class to false.

Чтобы отобразить флажок рядом с узлом, задайте свойство ShowCheckBoxes класса TreeView.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 может находиться в одном из двух режимов: режим выделения или режим навигации.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. Чтобы определить, какой узел был выбран в режиме выбора, используйте свойство SelectedNode элемента управления TreeView.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)

Инициализирует новый экземпляр класса TreeNode, используя указанные текст, значение и URL-адрес изображения.Initializes a new instance of the TreeNode class using the specified text, value, and image URL.

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

Инициализирует новый экземпляр класса TreeNode, используя указанные текст, значение, URL-адрес изображения, URL-адрес навигации и цель.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

Возвращает коллекцию 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

Получает или задает события для генерации в случае выбора узла.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

Получает или задает целевое окно или фрейм, для отображения содержимого веб-страницы, связанной с этим узлом.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()

Возвращает строку, представляющую текущий объект.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.

Применяется к

Дополнительно