TreeNode Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Stellt einen Knoten im TreeView-Steuerelement dar.
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
- Vererbung
-
TreeNode
- Implementiert
Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie Sie die Frames für das nächste Codebeispiel einrichten.
<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>
Im folgenden Codebeispiel wird veranschaulicht, wie Sie deklarative Syntax verwenden, um Objekte im TreeView Steuerelement zu erstellenTreeNode. In diesem Beispiel wird im Frameset des vorherigen Beispiels verwendet, um ein Inhaltsverzeichnis anzuzeigen.
<%@ 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>
Hinweise
Das TreeView Steuerelement besteht aus Knoten. Jeder Eintrag in der Struktur wird als Knoten bezeichnet und wird durch ein TreeNode Objekt dargestellt. Ein Knoten, der andere Knoten enthält, wird als übergeordneter Knoten bezeichnet. Ein Knoten, der von einem anderen Knoten enthalten ist, wird als untergeordneter Knoten bezeichnet. Ein Knoten, der keine untergeordneten Knoten aufweist, wird als Blattknoten bezeichnet. Ein Knoten, der nicht von einem anderen Knoten enthalten ist, sondern der Vorgänger aller anderen Knoten ist der Stammknoten. Ein Knoten kann sowohl ein übergeordnetes als auch ein untergeordnetes Element sein, aber Stamm-, übergeordnete und Blattknoten sind gegenseitig ausschließen. Mehrere visuelle und Verhaltenseigenschaften von Knoten werden bestimmt, ob ein Knoten ein Stamm-, übergeordneter oder Blattknoten ist.
Obwohl eine typische Struktur nur einen Stammknoten aufweist, ermöglicht das TreeView Steuerelement ihnen, mehrere Stammknoten ihrer Struktur hinzuzufügen. Dies ist nützlich, wenn Sie Elementeinträge anzeigen möchten, ohne einen einzigen Stammknoten anzuzeigen, wie in einer Liste der Produktkategorien.
Ein Knoten speichert in erster Linie Daten in zwei Eigenschaften, der Text Eigenschaft und der Value Eigenschaft. Der Wert der Text Eigenschaft wird im TreeView Steuerelement angezeigt, und die Value Eigenschaft wird verwendet, um zusätzliche Daten über den Knoten zu speichern, z. B. Daten, die zum Behandeln von Postbackereignissen verwendet werden. Ein Knoten speichert auch den Pfad vom Knoten zu seinem Stammknoten in der ValuePath Eigenschaft. Die ValuePath Eigenschaft gibt die Position des Knotens relativ zum Stammknoten an.
Hinweis
Knoten auf derselben Ebene müssen jeweils einen eindeutigen Wert für die Value Eigenschaft aufweisen; das TreeView Steuerelement kann nicht zwischen verschiedenen Knoten auf derselben Ebene unterscheiden, die denselben Wert haben. Wenn der Benutzer in diesem Szenario auf einen Knoten klickt, der einen doppelten Wert aufweist, wird der Knoten ausgewählt, der TreeView zuerst im Steuerelement angezeigt wird.
Ein TreeNode Objekt besteht aus den folgenden vier Benutzeroberflächeselementen (UI), die angepasst oder ausgeblendet werden können:
Ein Symbol für erweiterungsknoten, das verwendet wird, um anzuzeigen, ob der Knoten erweitert, reduziert oder nicht erweitert werden kann.
Ein optionales Kontrollkästchen, das dem Knoten zugeordnet ist.
Ein optionales Knotenbild.
Der Knotentext.
Sie können ein benutzerdefiniertes Bild für die erweiterbaren, kollapsiblen und nicht erweiterbaren Knotenindikatoren angeben, indem Sie die ExpandImageUrlCollapseImageUrlEigenschaften der Klasse festlegen, und NoExpandImageUrl die Eigenschaften der TreeView Klasse festlegen. Die Symbolsymbole für die Erweiterungsknoten können sogar vollständig ausgeblendet werden, indem Sie die ShowExpandCollapse Eigenschaft der TreeView Klasse auf falsefestlegen.
Um ein Kontrollkästchen neben einem Knoten anzuzeigen, legen Sie die ShowCheckBoxes Eigenschaft der TreeView Klasse fest. Wenn die ShowCheckBoxes Eigenschaft auf einen anderen Wert festgelegt ist als TreeNodeType.Node, werden Kontrollkästchen neben dem angegebenen Knotentyp angezeigt. Sie können das Kontrollkästchen eines einzelnen Knotens selektiv außer Kraft setzen, indem Sie die Eigenschaft des ShowCheckBox Knotens festlegen. Wenn ein Kontrollkästchen angezeigt wird, verwenden Sie die Eigenschaft, um festzustellen, ob das Checked Kontrollkästchen ausgewählt ist.
Sie können ein Bild in einem Knoten anzeigen, indem Sie die ImageUrl Eigenschaft festlegen. Dieses Bild wird neben dem Knotentext angezeigt.
Der Text eines Knotens im TreeView Steuerelement kann sich in einem von zwei Modi befinden: Auswahlmodus oder Navigationsmodus. Standardmäßig befindet sich ein Knoten im Auswahlmodus. Um einen Knoten im Navigationsmodus zu platzieren, legen Sie die Eigenschaft des Knotens NavigateUrl auf einen anderen Wert als eine leere Zeichenfolge ("") fest. Um einen Knoten im Auswahlmodus zu platzieren, legen Sie die Eigenschaft des Knotens NavigateUrl auf eine leere Zeichenfolge fest.
Hinweis
Einige Internetbrowser verfügen über eine Einschränkung, die sich auf die Leistung des TreeView Steuerelements auswirken kann. Beispielsweise verfügt Microsoft Internet Explorer 6.0 über eine URL-Zeichengrenze von 2067 Zeichen, die sie posten. Wenn die Anzahl der Zeichen in einer URL eines Knotens größer als diese Zahl ist, schlägt das Erweitern dieses Knotens fehl, und es wird keine Ausnahme ausgelöst.
Standardmäßig wird auf einen Knoten geklickt, der sich im Auswahlmodus befindet, die Seite zurück zum Server veröffentlicht und das SelectedNodeChanged Ereignis ausgelöst. Sie können optional ein anderes Ereignis angeben, das ausgelöst werden soll, indem Sie die Eigenschaft des Knotens SelectAction festlegen. Weitere Informationen finden Sie unter SelectAction. Um zu ermitteln, auf welchen Knoten im Auswahlmodus geklickt wurde, verwenden Sie die SelectedNode Eigenschaft des TreeView Steuerelements.
Wenn sich ein Knoten im Navigationsmodus befindet, werden alle Auswahlereignisse für diesen Knoten deaktiviert. Durch Klicken auf den Knoten im Navigationsmodus wird der Benutzer an die angegebene URL weiterleiten. Sie können optional die Eigenschaft festlegen, um das Target Fenster oder den Rahmen anzugeben, in dem der verknüpfte Inhalt angezeigt werden soll.
Die TreeNode Klasse enthält mehrere Eigenschaften, die zum Speichern des Zustands des Knotens verwendet werden. Verwenden Sie die Selected Eigenschaft, um festzustellen, ob ein Knoten ausgewählt ist. Um zu ermitteln, ob der Knoten erweitert wird, verwenden Sie die Expanded Eigenschaft. Die DataBound Eigenschaft wird verwendet, um zu bestimmen, ob ein Knoten an Daten gebunden ist. Wenn ein Knoten an Daten gebunden ist, können Sie mithilfe der Eigenschaft auf das DataItem zugrunde liegende Datenelement zugreifen.
Die Klasse bietet mehrere Eigenschaften, die helfen, die Position eines Knotens relativ zu anderen Knoten in der Struktur zu bestimmen. Verwenden Sie die Depth Eigenschaft, um die Tiefe des Knotens zu bestimmen. Mithilfe der ValuePath Eigenschaft können Sie die getrennte Liste der Knoten von dem aktuellen Knoten auf den Stammknoten abrufen. Um den übergeordneten Knoten des Knotens zu bestimmen, verwenden Sie die Parent Eigenschaft. Untergeordnete Knoten werden mithilfe der ChildNodes Auflistung zugegriffen.
Manchmal ist es nicht praktisch, die Struktur der Struktur aufgrund von Datengröße oder benutzerdefinierten Inhalten, die von der Benutzereingabe abhängig sind, statisch vorzudefinieren. Aus diesem Gründen unterstützt das TreeView Steuerelement die dynamische Knotenanzahl. Ein Knoten kann zur Laufzeit gefüllt werden, wenn er erweitert wird. Beachten Sie, dass Sie unerwartetes Verhalten erhalten können, wenn Sie asynchron erstellte Knoten beibehalten. Wenn Sie beispielsweise einen Hintergrundarbeitsthread verwenden, um Knoten asynchron aufzufüllen, wird die Knotenstruktur möglicherweise nicht sofort ausgefüllt, obwohl das Steuerelement mit dem rest des Seitenlebenszyklus fortgeht. Bei postback kann die verzögerte Erstellung der Knoten Probleme verursachen, wenn der Ansichtszustand des Steuerelements geladen wird, aber die Knotenstruktur nicht vollständig gefüllt ist. Weitere Informationen zur dynamischen Knotenpopulation finden Sie in der PopulateOnDemand Eigenschaft.
Eine Liste der anfänglichen Eigenschaftenwerte für eine Instanz von TreeNode, finden Sie im TreeNode Konstruktor.
Konstruktoren
| TreeNode() |
Initialisiert eine neue Instanz der TreeNode-Klasse ohne Text oder einen Wert. |
| TreeNode(String) |
Initialisiert eine neue Instanz der TreeNode-Klasse unter Verwendung des angegebenen Textes. |
| TreeNode(String, String) |
Initialisiert eine neue Instanz der TreeNode-Klasse unter Verwendung des angegebenen Texts und Werts. |
| TreeNode(String, String, String) |
Initialisiert eine neue Instanz der TreeNode-Klasse unter Verwendung des angegebenen Texts, des angegebenen Werts und der angegebenen Bild-URL. |
| TreeNode(String, String, String, String, String) |
Initialisiert eine neue Instanz der TreeNode-Klasse unter Verwendung des angegebenen Texts, des angegebenen Werts, der angegebenen URL zu einem Bild, der URL für die Navigation sowie eines Ziels. |
| TreeNode(TreeView, Boolean) |
Initialisiert eine neue Instanz der TreeNode-Klasse unter Verwendung des angegebenen Besitzers. |
Eigenschaften
| Checked |
Ruft einen Wert ab, der angibt, ob das Kontrollkästchen des Knotens aktiviert ist, oder legt diesen fest. |
| ChildNodes |
Ruft eine TreeNodeCollection-Auflistung ab, die die untergeordneten Knoten der ersten Ebene des aktuellen Knotens enthält. |
| DataBound |
Ruft einen Wert ab, der angibt, ob der Knoten durch Datenbindung erstellt wurde. |
| DataItem |
Ruft das Datenelement ab, das an den Knoten gebunden ist. |
| DataPath |
Ruft den Pfad zu den an den Knoten gebundenen Daten ab. |
| Depth |
Ruft die Tiefe des Knotens ab. |
| Expanded |
Ruft einen Wert ab, der angibt, ob der Knoten erweitert ist, oder legt diesen Wert fest. |
| ImageToolTip |
Ruft den QuickInfo-Text für das neben einem Knoten angezeigte Bild ab oder legt ihn fest. |
| ImageUrl |
Ruft die URL zu einem Bild ab, das neben dem Knoten angezeigt wird, oder legt diese URL fest. |
| IsTrackingViewState |
Ruft einen Wert ab, der angibt, ob Änderungen am Ansichtszustand des Knotens gespeichert werden. |
| NavigateUrl |
Ruft die URL ab, zu dem beim Klicken auf den Knoten navigiert wird, oder legt diese URL fest. |
| Parent |
Ruft den übergeordneten Knoten des aktuellen Knotens ab. |
| PopulateOnDemand |
Ruft einen Wert ab, der angibt, ob der Knoten dynamisch aufgefüllt wird, oder legt diesen Wert fest. |
| SelectAction |
Ruft das Ereignis oder die Ereignisse ab, die ausgelöst werden sollen, wenn ein Knoten ausgewählt wird, oder legt diese Ereignisse fest. |
| Selected |
Ruft einen Wert ab, der angibt, ob der Knoten ausgewählt ist, oder legt diesen Wert fest. |
| ShowCheckBox |
Ruft einen Wert ab, der angibt, ob ein Kontrollkästchen neben dem Knoten angezeigt wird, oder legt diesen Wert fest. |
| Target |
Ruft das Zielfenster oder den Zielframe ab, in dem die einem Knoten zugeordneten Webseiteninhalte angezeigt werden sollen, oder legt dieses Zielfenster bzw. den Zielframe fest. |
| Text |
Ruft den Text ab oder legt den Text fest, der im TreeView-Steuerelement für den Knoten angezeigt wird. |
| ToolTip |
Ruft den QuickInfo-Text für den Knoten ab oder legt diesen fest. |
| Value |
Ruft einen nicht angezeigten Wert ab, mit dem zusätzliche Daten für den Knoten gespeichert werden (z. B. Daten zum Behandeln eines Postbackereignisses), oder legt diesen Wert fest. |
| ValuePath |
Ruft den Pfad vom Stammknoten zum aktuellen Knoten ab. |
Methoden
| Clone() |
Erstellt eine neue Instanz der TreeNode-Klasse mit den Eigenschaften der aktuellen TreeNode-Instanz. |
| Collapse() |
Reduziert den aktuellen Strukturknoten. |
| CollapseAll() |
Reduziert den aktuellen Knoten und alle seine untergeordneten Knoten. |
| Equals(Object) |
Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist. (Geerbt von Object) |
| Expand() |
Erweitert den aktuellen Strukturknoten. |
| ExpandAll() |
Erweitert den aktuellen Knoten und all seine untergeordneten Knoten. |
| GetHashCode() |
Fungiert als Standardhashfunktion. (Geerbt von Object) |
| GetType() |
Ruft den Type der aktuellen Instanz ab. (Geerbt von Object) |
| LoadViewState(Object) |
Lädt den zuvor gespeicherten Ansichtszustand des Knotens. |
| MemberwiseClone() |
Erstellt eine flache Kopie des aktuellen Object. (Geerbt von Object) |
| RenderPostText(HtmlTextWriter) |
Ermöglicht es Steuerelemententwicklern, zusätzliche Darstellungsmöglichkeiten für den Knoten bereitzustellen. |
| RenderPreText(HtmlTextWriter) |
Ermöglicht es Steuerelemententwicklern, zusätzliche Darstellungsmöglichkeiten für den Knoten bereitzustellen. |
| SaveViewState() |
Speichert den aktuellen Ansichtszustand des Knotens. |
| Select() |
Wählt den aktuellen Knoten im TreeView-Steuerelement aus. |
| ToggleExpandState() |
Wechselt zwischen dem erweiterten und dem reduzierten Zustand des Knotens. |
| ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |
| TrackViewState() |
Markiert den Anfangspunkt, an dem begonnen werden soll, Änderungen am Ansichtszustand des Knotens zu verfolgen und zu speichern. |
Explizite Schnittstellenimplementierungen
| ICloneable.Clone() |
Erstellt eine Kopie des TreeNode-Objekts. |
| IStateManager.IsTrackingViewState |
Eine Beschreibung dieses Elements finden Sie unter IsTrackingViewState. |
| IStateManager.LoadViewState(Object) |
Lädt den zuvor gespeicherten Ansichtszustand des Knotens. |
| IStateManager.SaveViewState() |
Speichert die Änderungen am Ansichtszustand in einem Object. |
| IStateManager.TrackViewState() |
Weist das TreeNode-Objekt an, Änderungen am Ansichtszustand nachzuverfolgen. |