Поделиться через


TreeNode Класс

Определение

Представляет узел в элементе TreeView управления.

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

Хотя обычное дерево имеет только один корневой узел, TreeView элемент управления позволяет добавлять несколько корневых узлов в структуру дерева. Это полезно при отображении списков элементов без отображения одного основного корневого узла, как в списке категорий продуктов.

Узел в основном хранит данные в двух свойствах, Text свойстве и свойстве Value . Значение Text свойства отображается в TreeView элементе управления, а Value свойство используется для хранения дополнительных данных об узле, таких как данные, используемые для обработки событий обратной передачи. Узел также сохраняет путь от узла к корневому узлу в свойстве ValuePath . Свойство ValuePath указывает положение узла относительно корневого узла.

Замечание

Узлы на одном уровне должны иметь уникальное значение для Value свойства. Элемент TreeView управления не может различать разные узлы на одном уровне с одинаковым значением. В этом сценарии, если пользователь щелкает узел с повторяющимся значением, выбран узел, который отображается в элементе TreeView управления.

TreeNode Объект состоит из следующих четырех элементов пользовательского интерфейса, которые можно настроить или скрыть:

  • Значок индикатора узла расширения, используемый для отображения того, развернут ли узел, свернут или не развернут.

  • Необязательный флажок, связанный с узлом.

  • Необязательный образ узла.

  • Текст узла.

Вы можете указать пользовательский образ для индикаторов расширяемого, свертывого и неразверяемого TreeView узла, задав NoExpandImageUrlExpandImageUrlCollapseImageUrlсвойства и свойства класса. Значки индикатора расширения узла даже могут быть скрыты полностью, задав ShowExpandCollapse для TreeView свойства класса значение false.

Чтобы отобразить флажок рядом с узлом, задайте ShowCheckBoxes свойство TreeView класса. ShowCheckBoxes Если для свойства задано значение, отличное TreeNodeType.Nodeот значения, флажки отображаются рядом с указанным типом узла. Вы можете выборочно переопределить флажок отдельного узла, задав свойство узла ShowCheckBox . При отображении флажка используйте Checked свойство, чтобы определить, установлен ли флажок.

Изображение можно отобразить на узле, задав ImageUrl свойство. Это изображение отображается рядом с текстом узла.

Текст узла в TreeView элементе управления может находиться в одном из двух режимов: режим выделения или режим навигации. По умолчанию узел находится в режиме выбора. Чтобы поместить узел в режим навигации, задайте для свойства узла NavigateUrl значение, отличное от пустой строки (""). Чтобы поместить узел в режим выбора, задайте для свойства узла NavigateUrl пустую строку.

Замечание

Некоторые браузеры Интернета имеют ограничение, которое может повлиять на производительность TreeView элемента управления. Например, Microsoft Internet Explorer 6.0 имеет ограничение НА URL-адрес в 2067 символов, которые он публикует. Если число символов в URL-адресе узла больше этого числа, расширение этого узла завершится ошибкой, и исключение не возникает.

По умолчанию щелчок узла, который находится в режиме выбора, отправляет страницу обратно на сервер и вызывает SelectedNodeChanged событие. При необходимости можно указать другое событие для создания, задав свойство узла SelectAction . Дополнительные сведения см. в разделе SelectAction. Чтобы определить, какой узел был щелкнут в режиме выбора, используйте SelectedNode свойство TreeView элемента управления.

Если узел находится в режиме навигации, все события выбора отключены для этого узла. Щелкнув узел в режиме навигации, пользователь направляет пользователя на указанный URL-адрес. При необходимости можно задать Target свойство, чтобы указать окно или кадр, в котором будет отображаться связанное содержимое.

Класс TreeNode содержит несколько свойств, которые используются для хранения состояния узла. Selected Используйте свойство, чтобы определить, выбран ли узел. Чтобы определить, развернут ли узел, используйте Expanded свойство. Свойство DataBound используется для определения того, привязан ли узел к данным. Если узел привязан к данным, вы можете получить доступ к базовому элементу данных с помощью DataItem свойства.

Класс предоставляет несколько свойств, которые помогают определить положение узла относительно других узлов в дереве. Depth Используйте свойство для определения глубины узла. Список узлов с разделителями можно получить от текущего узла к корневому ValuePath узлу с помощью свойства. Чтобы определить родительский узел узла, используйте Parent свойство. Доступ к дочерним узлам выполняется с помощью ChildNodes коллекции.

Иногда не рекомендуется статически предопределить структуру дерева из-за размера данных или пользовательского содержимого, зависящее от ввода пользователем. Из-за этого элемент TreeView управления поддерживает динамическое заполнение узлов. Узел может быть заполнен во время выполнения при его развертывании. Обратите внимание, что при сохранении асинхронно созданных узлов можно получить непредвиденное поведение. Например, если вы используете фоновый рабочий поток для асинхронного заполнения узлов, дерево узлов может не заполняться немедленно, хотя элемент управления продолжается с остальным жизненным циклом страницы. При обратной отправке задержка создания узлов может вызвать проблемы при загрузке состояния представления элемента управления, но дерево узлов не заполнено полностью. Дополнительные сведения о динамическом заполнения узлов см. в свойстве PopulateOnDemand .

Список начальных значений свойств для экземпляра TreeNodeсм. в конструкторе TreeNode .

Конструкторы

Имя Описание
TreeNode()

Инициализирует новый экземпляр TreeNode класса без текста или значения.

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

Инициализирует новый экземпляр класса с помощью указанного TreeNode текста, значения, URL-адреса изображения, URL-адреса навигации и целевого объекта.

TreeNode(String, String, String)

Инициализирует новый экземпляр класса с помощью указанного TreeNode текста, значения и URL-адреса изображения.

TreeNode(String, String)

Инициализирует новый экземпляр класса с помощью указанного TreeNode текста и значения.

TreeNode(String)

Инициализирует новый экземпляр класса с помощью указанного TreeNode текста.

TreeNode(TreeView, Boolean)

Инициализирует новый экземпляр класса с помощью указанного TreeNode владельца.

Свойства

Имя Описание
Checked

Возвращает или задает значение, указывающее, установлен ли флажок узла.

ChildNodes

Возвращает коллекцию TreeNodeCollection , содержащую дочерние узлы первого уровня текущего узла.

DataBound

Возвращает значение, указывающее, был ли узел создан с помощью привязки данных.

DataItem

Возвращает элемент данных, привязанный к элементу управления.

DataPath

Возвращает путь к данным, привязанным к узлу.

Depth

Возвращает глубину узла.

Expanded

Возвращает или задает значение, указывающее, развернут ли узел.

ImageToolTip

Возвращает или задает текст подсказки для изображения, отображаемого рядом с узлом.

ImageUrl

Возвращает или задает URL-адрес изображения, отображаемого рядом с узлом.

IsTrackingViewState

Возвращает значение, указывающее, сохраняет ли узел изменения в состоянии представления.

NavigateUrl

Возвращает или задает URL-адрес для перехода по щелчку узла.

Parent

Возвращает родительский узел текущего узла.

PopulateOnDemand

Возвращает или задает значение, указывающее, заполняется ли узел динамически.

SelectAction

Возвращает или задает событие или события, возникающие при выборе узла.

Selected

Возвращает или задает значение, указывающее, выбран ли узел.

ShowCheckBox

Возвращает или задает значение, указывающее, отображается ли флажок рядом с узлом.

Target

Возвращает или задает целевое окно или кадр, в котором отображается содержимое веб-страницы, связанное с узлом.

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 объекту отслеживать изменения состояния представления.

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

См. также раздел