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 узел, элемент управления позволяет добавить несколько корневых узлов в структуру дерева. Это полезно, если требуется отобразить списки элементов без отображения одного main корневом узле, как в списке категорий продуктов.
Узел в основном хранит данные в двух свойствах: свойстве Text и свойстве Value . Значение свойства отображается в элементе TextTreeView управления , а Value свойство используется для хранения любых дополнительных данных об узле, например данных, используемых для обработки событий обратной передачи. Узел также сохраняет путь от узла к его корневому узлу в свойстве ValuePath . Свойство ValuePath указывает положение узла относительно корневого узла.
Примечание
Узлы на одном уровне должны иметь уникальное значение свойства Value . TreeView Элемент управления не может различать разные узлы на одном уровне с одинаковым значением. В этом сценарии, если пользователь щелкает узел с повторяющимся значением, выбирается узел, который отображается первым в элементе TreeView управления .
Объект TreeNode состоит из следующих четырех элементов пользовательского интерфейса, которые можно настроить или скрыть:
Значок индикатора узла расширения, используемый для отображения того, является ли узел развернутым, свернутым или неразвертываемым.
Необязательный проверка поле, связанное с узлом.
Необязательное изображение узла.
Текст узла.
Можно указать пользовательский образ для расширяемых, свертываемых и неразвертываемых индикаторов узлов, задав ExpandImageUrlсвойства TreeView , CollapseImageUrlи NoExpandImageUrl класса . Значки индикатора узла расширения можно даже полностью скрыть, задав свойству ShowExpandCollapseTreeView класса значение false
.
Чтобы отобразить поле проверка рядом с узлом, задайте ShowCheckBoxes свойство TreeView класса . Если свойству ShowCheckBoxes присвоено значение, отличное TreeNodeType.Node
от , проверка поля отображаются рядом с указанным типом узла. Вы можете выборочно переопределить поле проверка отдельного узла, задав свойство узлаShowCheckBox. При отображении поля проверка используйте Checked свойство , чтобы определить, выбрано ли поле проверка.
Вы можете отобразить изображение в узле, задав ImageUrl свойство . Это изображение отображается рядом с текстом узла.
Текст узла в элементе TreeView управления может находиться в одном из двух режимов: режиме выбора или режиме навигации. По умолчанию узел находится в режиме выбора. Чтобы поместить узел в режим навигации, задайте для свойства узла NavigateUrl значение, отличное от пустой строки (""). Чтобы поместить узел в режим выбора, задайте для свойства узла NavigateUrl пустую строку.
Примечание
Некоторые интернет-браузеры имеют ограничения, которые могут повлиять на производительность TreeView элемента управления. Например, microsoft Internet Обозреватель 6.0 имеет ограничение в 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) |
Инициализирует новый экземпляр класса TreeNode с помощью указанного текста. |
TreeNode(String, String) |
Инициализирует новый экземпляр класса TreeNode, используя указанные текст и значение. |
TreeNode(String, String, String) |
Инициализирует новый экземпляр класса TreeNode, используя указанные текст, значение и URL-адрес изображения. |
TreeNode(String, String, String, String, String) |
Инициализирует новый экземпляр класса TreeNode, используя указанные текст, значение, URL-адрес изображения, URL-адрес навигации и цель. |
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 инструкции отслеживать изменения в его состоянии представления. |