TreeNode Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Reprezentuje węzeł w kontrolce 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
- Dziedziczenie
-
TreeNode
- Implementuje
Przykłady
W poniższym przykładzie kodu pokazano, jak skonfigurować ramki dla następnego przykładu kodu.
<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>
W poniższym przykładzie kodu pokazano, jak używać składni deklaratywnej do tworzenia TreeNode obiektów w kontrolce TreeView . Ten przykład jest używany w zestawie ram poprzedniego przykładu do wyświetlania spisu treści.
<%@ 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
Kontrolka TreeView składa się z węzłów. Każdy wpis w drzewie jest nazywany węzłem i jest reprezentowany TreeNode przez obiekt. Węzeł zawierający inne węzły jest nazywany węzłem nadrzędnym. Węzeł zawarty w innym węźle jest nazywany węzłem podrzędnym. Węzeł, który nie ma węzłów podrzędnych, jest nazywany węzłem liścia. Węzeł, który nie jest zawarty w żadnym innym węźle, ale jest węzłem nadrzędnym do wszystkich innych węzłów, jest węzłem głównym. Węzeł może być zarówno węzłem nadrzędnym, jak i podrzędnym, ale węzły główne, nadrzędne i liścia wzajemnie się wykluczają. Kilka właściwości wizualnych i behawioralnych węzłów zależy od tego, czy węzeł jest węzłem głównym, nadrzędnym czy liścia .
Chociaż typowe drzewo ma tylko jeden węzeł główny, kontrolka TreeView umożliwia dodanie wielu węzłów głównych do struktury drzewa. 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.
Węzeł przechowuje dane głównie w dwóch właściwościach, Text właściwości i Value właściwości. Wartość Text właściwości jest wyświetlana w kontrolce TreeView , a Value właściwość 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. Węzeł przechowuje również ścieżkę z węzła do węzła głównego we ValuePath właściwości . Właściwość ValuePath wskazuje pozycję węzła względem węzła głównego.
Uwaga
Węzły na tym samym poziomie muszą mieć unikatową wartość dla Value właściwości. Kontrolka TreeView nie może odróżnić różnych węzłów na tym samym poziomie, które mają tę samą wartość. W tym scenariuszu, jeśli użytkownik kliknie węzeł, który ma zduplikowaną wartość, zostanie wybrany węzeł, który zostanie wyświetlony jako pierwszy w kontrolce TreeView .
Obiekt TreeNode składa się z następujących czterech elementów interfejsu użytkownika, które można dostosować lub ukryć:
Ikona wskaźnika węzła rozszerzenia używana do pokazywania, czy węzeł jest rozwijany, zwinięty, czy nie rozwijalny.
Opcjonalne pole wyboru skojarzone z węzłem.
Opcjonalny obraz węzła.
Tekst węzła.
Można określić obraz niestandardowy dla wskaźników węzłów, które można rozszerzać, zwijane i niewzględnialne, ustawiając ExpandImageUrlwłaściwości TreeView klasy , CollapseImageUrli NoExpandImageUrl . Ikony wskaźnika węzła rozszerzenia można nawet całkowicie ukryć, ustawiając ShowExpandCollapse właściwość TreeView klasy na false
.
Aby wyświetlić pole wyboru obok węzła, ustaw ShowCheckBoxes właściwość TreeView klasy . Gdy właściwość jest ustawiona ShowCheckBoxes na wartość inną niż TreeNodeType.Node
, pola wyboru są wyświetlane obok określonego typu węzła. Można selektywnie zastąpić pole wyboru pojedynczego węzła, ustawiając właściwość węzła ShowCheckBox . Po wyświetleniu pola wyboru użyj Checked właściwości , aby określić, czy pole wyboru jest zaznaczone.
Obraz można wyświetlić w węźle, ustawiając ImageUrl właściwość . Ten obraz jest wyświetlany obok tekstu węzła.
Tekst węzła w kontrolce TreeView może być w jednym z dwóch trybów: tryb zaznaczenia lub tryb nawigacji. Domyślnie węzeł jest w trybie wyboru. Aby umieścić węzeł w trybie nawigacji, ustaw właściwość węzła NavigateUrl na wartość inną niż pusty ciąg (""). Aby przełożyć węzeł do trybu wyboru, ustaw właściwość węzła NavigateUrl na pusty ciąg.
Uwaga
Niektóre przeglądarki internetowe mają ograniczenie, które może mieć wpływ na wydajność kontrolki TreeView . Na przykład program Microsoft Internet Explorer 6.0 ma limit znaków adresu URL 2067, który publikuje. Jeśli liczba znaków w adresie URL węzła jest większa niż ta liczba, rozszerzenie tego węzła zakończy się niepowodzeniem i nie zostanie zgłoszony żaden wyjątek.
Domyślnie kliknięcie węzła, który jest w trybie wyboru, publikuje stronę z powrotem na serwerze i zgłasza SelectedNodeChanged zdarzenie. Opcjonalnie możesz określić inne zdarzenie, które ma być wywoływane, ustawiając właściwość węzła SelectAction
. Aby uzyskać więcej informacji, zobacz SelectAction. Aby określić, który węzeł został kliknięny w trybie wyboru, użyj SelectedNode właściwości kontrolki TreeView .
Gdy węzeł jest w trybie nawigacji, wszystkie zdarzenia wyboru są wyłączone dla tego węzła. Kliknięcie węzła w trybie nawigacji spowoduje przekierowanie użytkownika do określonego adresu URL. Opcjonalnie możesz ustawić Target właściwość , aby określić okno lub ramkę, w której ma być wyświetlana połączona zawartość.
Klasa TreeNode zawiera kilka właściwości, które są używane do przechowywania stanu węzła. Selected Użyj właściwości , aby określić, czy węzeł jest wybrany. Aby określić, czy węzeł jest rozwinięty, użyj Expanded właściwości . Właściwość służy do określania DataBound , czy węzeł jest powiązany z danymi. Gdy węzeł jest powiązany z danymi, możesz uzyskać dostęp do bazowego elementu danych przy użyciu DataItem właściwości .
Klasa udostępnia kilka właściwości, które pomagają określić położenie węzła względem innych węzłów w drzewie. Użyj właściwości , Depth aby określić głębokość węzła. Listę rozdzielonych węzłów można uzyskać z bieżącego węzła do węzła głównego przy użyciu ValuePath właściwości . Aby określić węzeł nadrzędny węzła, użyj Parent właściwości . Dostęp do węzłów podrzędnych jest uzyskiwany przy użyciu kolekcji ChildNodes .
Czasami nie jest to praktyczne, aby statycznie wstępnie zdefiniować strukturę drzewa ze względu na rozmiar danych lub zawartość niestandardową, która zależy od danych wejściowych użytkownika. W związku z tym kontrolka obsługuje dynamiczną populację TreeView węzłów. Węzeł można wypełnić w czasie wykonywania po rozwinięciu. Należy pamiętać, że w przypadku utrwalonego asynchronicznego tworzenia węzłów można uzyskać nieoczekiwane zachowanie. Jeśli na przykład używasz wątku roboczego w tle do asynchronicznego wypełniania węzłów, drzewo węzłów może nie zostać wypełnione natychmiast, mimo że kontrolka przejdzie do końca cyklu życia strony. Po wystąpieniu zwrotnym opóźnione tworzenie węzłów może powodować problemy, gdy stan widoku kontrolki jest ładowany, ale drzewo węzłów nie jest w pełni wypełnione. Aby uzyskać więcej informacji na temat dynamicznej PopulateOnDemand populacji węzłów, zobacz właściwość .
Aby uzyskać listę początkowych wartości właściwości dla wystąpienia TreeNodeklasy , zobacz TreeNode konstruktor.
Konstruktory
TreeNode() |
Inicjuje TreeNode nowe wystąpienie klasy bez tekstu lub wartości. |
TreeNode(String) |
Inicjuje TreeNode nowe wystąpienie klasy przy użyciu określonego tekstu. |
TreeNode(String, String) |
Inicjuje TreeNode nowe wystąpienie klasy przy użyciu określonego tekstu i wartości. |
TreeNode(String, String, String) |
Inicjuje TreeNode nowe wystąpienie klasy przy użyciu określonego tekstu, wartości i adresu URL obrazu. |
TreeNode(String, String, String, String, String) |
Inicjuje TreeNode nowe wystąpienie klasy przy użyciu określonego tekstu, wartości, adresu URL obrazu, adresu URL nawigacji i elementu docelowego. |
TreeNode(TreeView, Boolean) |
Inicjuje TreeNode nowe wystąpienie klasy przy użyciu określonego właściciela. |
Właściwości
Checked |
Pobiera lub ustawia wartość wskazującą, czy zaznaczono pole wyboru węzła. |
ChildNodes |
Pobiera kolekcję zawierającą TreeNodeCollection węzły podrzędne pierwszego poziomu bieżącego węzła. |
DataBound |
Pobiera wartość wskazującą, czy węzeł został utworzony za pomocą powiązania danych. |
DataItem |
Pobiera element danych powiązany z kontrolką. |
DataPath |
Pobiera ścieżkę do danych powiązanych z węzłem. |
Depth |
Pobiera głębokość węzła. |
Expanded |
Pobiera lub ustawia wartość wskazującą, czy węzeł jest rozwinięty. |
ImageToolTip |
Pobiera lub ustawia tekst etykietki narzędzia dla obrazu wyświetlanego obok węzła. |
ImageUrl |
Pobiera lub ustawia adres URL na obraz wyświetlany obok węzła. |
IsTrackingViewState |
Pobiera wartość wskazującą, czy węzeł zapisuje zmiany w stanie widoku. |
NavigateUrl |
Pobiera lub ustawia adres URL, do których ma przejść po kliknięciu węzła. |
Parent |
Pobiera węzeł nadrzędny bieżącego węzła. |
PopulateOnDemand |
Pobiera lub ustawia wartość wskazującą, czy węzeł jest wypełniany dynamicznie. |
SelectAction |
Pobiera lub ustawia zdarzenie lub zdarzenia, które mają być wywoływane po wybraniu węzła. |
Selected |
Pobiera lub ustawia wartość wskazującą, czy węzeł jest wybrany. |
ShowCheckBox |
Pobiera lub ustawia wartość wskazującą, czy pole wyboru jest wyświetlane obok węzła. |
Target |
Pobiera lub ustawia okno docelowe lub ramkę, w której ma być wyświetlana zawartość strony sieci Web skojarzona z węzłem. |
Text |
Pobiera lub ustawia tekst wyświetlany dla węzła w kontrolce TreeView . |
ToolTip |
Pobiera lub ustawia tekst etykietki narzędzia dla węzła. |
Value |
Pobiera lub ustawia nie wyświetlaną wartość używaną do przechowywania dodatkowych danych dotyczących węzła, takich jak dane używane do obsługi zdarzeń ogłaszania zwrotnego. |
ValuePath |
Pobiera ścieżkę z węzła głównego do bieżącego węzła. |
Metody
Clone() |
Tworzy nowe wystąpienie TreeNode klasy z właściwościami bieżącego TreeNode wystąpienia. |
Collapse() |
Zwija bieżący węzeł drzewa. |
CollapseAll() |
Zwija bieżący węzeł i wszystkie jego węzły podrzędne. |
Equals(Object) |
Określa, czy dany obiekt jest taki sam, jak bieżący obiekt. (Odziedziczone po Object) |
Expand() |
Rozwija bieżący węzeł drzewa. |
ExpandAll() |
Rozwija bieżący węzeł i wszystkie jego węzły podrzędne. |
GetHashCode() |
Służy jako domyślna funkcja skrótu. (Odziedziczone po Object) |
GetType() |
Type Pobiera wartość bieżącego wystąpienia. (Odziedziczone po Object) |
LoadViewState(Object) |
Ładuje wcześniej zapisany stan widoku węzła. |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po Object) |
RenderPostText(HtmlTextWriter) |
Umożliwia deweloperom sterowania dodawanie dodatkowego renderowania do węzła. |
RenderPreText(HtmlTextWriter) |
Umożliwia deweloperom sterowania dodawanie dodatkowego renderowania do węzła. |
SaveViewState() |
Zapisuje bieżący stan widoku węzła. |
Select() |
Wybiera bieżący węzeł w kontrolce TreeView . |
ToggleExpandState() |
Alternatywne między rozwiniętym i zwiniętym stanem węzła. |
ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Odziedziczone po Object) |
TrackViewState() |
Oznacza punkt początkowy, w którym należy rozpocząć śledzenie i zapisywanie zmian stanu widoku w węźle. |
Jawne implementacje interfejsu
ICloneable.Clone() |
Tworzy kopię TreeNode obiektu. |
IStateManager.IsTrackingViewState |
Aby uzyskać opis tego członka, zobacz IsTrackingViewState. |
IStateManager.LoadViewState(Object) |
Ładuje wcześniej zapisany stan widoku węzła. |
IStateManager.SaveViewState() |
Zapisuje zmiany stanu widoku w obiekcie Object. |
IStateManager.TrackViewState() |
Instruuje obiekt, TreeNode aby śledzić zmiany stanu widoku. |