Das Steuerelement besteht TreeView Knoten. Jeder Eintrag in der Struktur wird ein Knoten bezeichnet und wird von einem TreeNode-Objekt dargestellt. Ein Knoten, der andere Knoten enthält, wird als übergeordneten Knotenbezeichnet. Ein Knoten, der durch einen anderen Knoten enthalten ist, wird als untergeordnete Knotenbezeichnet. Ein Knoten, der nicht über untergeordnete Knoten verfügt, wird als Blattknotenbezeichnet. Ein Knoten, der nicht von einem anderen Knoten, sondern der Vorgänger allen anderen Knoten ist der Stammknotenist. Ein Knoten kann ein übergeordnetes Element und ein untergeordnetes Element sein, doch Stammknoten, übergeordnete Knoten und Endknoten schließen sich gegenseitig aus. Einige visuelle und Verhaltenseigenschaften von Knoten werden davon ab, ob ein Knoten ein Wurzel-, ein übergeordnetes Elementoder ein Endknoten ist.
Obwohl eine typische Baumstruktur nur einen Stammknoten besitzt, kann das Steuerelement TreeView Sie mit mehreren Stammknoten der Struktur hinzugefügt werden soll. Dies bietet sich an, wenn Sie Elementlisten anzeigen möchten, ohne einen einzelnen wichtigsten Stammknoten anzuzeigen, wie in einer Liste von Kategorien für Produkte nützlich.
Ein Knoten werden in erster Linie Daten in zwei Eigenschaften in der Text-Eigenschaft und in 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, wie Daten zu speichern, die für das Behandeln eines Postbackereignisses). Ein Knoten enthält auch den Pfad vom Stammknoten zum Knoten in der ValuePath-Eigenschaft. Die ValuePath-Eigenschaft gibt die Position des Knotens relativ zum Stammknoten an.
Hinweis |
|---|
Knoten auf der gleichen Ebene müssen jeweils einen eindeutigen Wert für die Value-Eigenschaft aufweisen. TreeView das Steuerelement kann nicht zwischen verschiedenen Knoten auf der gleichen Ebene unterscheiden, die über den gleichen Wert verfügen. In diesem Szenario wenn der Benutzer auf einen Knoten klickt, der einen doppelten Wert aufweist, wird der Knoten, der zuerst im TreeView-Steuerelement ausgewählt wird. |
Ein TreeNode-Objekt umfasst die folgenden vier Benutzeroberflächenelemente, die angepasst oder ausgeblendet werden können:
Ein Symbol knoten-Indikator Add-In verwendet, um anzuzeigen, ob der Knoten erweitert oder reduziert werden, ist nicht erweiterbar.
Ein optionales Kontrollkästchen dem Knoten zugeordnet ist.
Ein optionales Knotenbild.
Der Knotentext.
Sie können ein benutzerdefiniertes Bild für die erweiterbare und nicht erweiterbar, reduzierbare Knoten angeben, indem Sie Indikatoren ExpandImageUrl, CollapseImageUrlund NoExpandImageUrl-Eigenschaften der TreeView-Klasse festlegen. Die Symbole können sogar knoten-Indikator Add-In vollständig ausgeblendet werden, indem die ShowExpandCollapse-Eigenschaft der TreeView-Klasse falsefestlegt.
Um ein Kontrollkästchen neben einem Knoten angezeigt werden soll, legen Sie die ShowCheckBoxes-Eigenschaft der TreeView-Klasse fest. Wenn die ShowCheckBoxes-Eigenschaft auf einen anderen Wert als TreeNodeType.Nodefestgelegt ist, werden Kontrollkästchen neben dem angegebenen Knotentyp angezeigt. Sie können das Kontrollkästchen eines einzelnen Knotens selektiv überschreiben, indem Sie die ShowCheckBox-Eigenschaft des Knotens festlegen. Wenn ein Kontrollkästchen angezeigt wird, verwenden Sie die Checked-Eigenschaft, um festzustellen, ob das Kontrollkästchen aktiviert 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 in einem von zwei Modi sein: Auswahlmodus oder Navigationsmodus. Standardmäßig wird ein Knoten im Auswahlmodus. Um einen Knoten im Navigationsmodus zu können, legen Sie die NavigateUrl-Eigenschaft des Knotens auf einen anderen Wert als eine leere Zeichenfolge ("") fest. Um einen Knoten im Auswahlmodus zu können, legen Sie die NavigateUrl-Eigenschaft des Knotens auf eine leere Zeichenfolge fest.
Hinweis |
|---|
Einige Internetbrowser verfügen über eine Einschränkung, die die Leistung des TreeView-Steuerelements auswirken kann. So verfügt z. B. Microsoft Internet Explorer 6.0 URL-Zeichen eine Grenze von 2067 Zeichen dass Beiträge. Wenn die Anzahl der Zeichen in einer URL eines Knotens größer als diese Zahl ist, wird die Erweiterung, dass Knoten fehlschlägt, und es wird keine Ausnahme ausgelöst. |
Standardmäßig durch Klicken auf einen Knoten, der in den Auswahlmodus beiträgen die Seite an den Server ausgeführt wird und das SelectedNodeChanged-Ereignis auslöst. Sie können ein anderes Ereignis optional angeben, die ausgelöst werden sollen, indem Sie die SelectAction-Eigenschaft des Knotens 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 ein Knoten im Navigationsmodus befindet, werden alle Auswahl von Ereignissen für diesen Knoten deaktiviert. Durch Klicken auf den Knoten Verweise im Navigationsmodus der Benutzer die angegebene URL. Sie können die Target-Eigenschaft optional festlegen, um das Fenster oder den Frame angeben, in denen die verknüpften Inhalt angezeigt wird.
Die TreeNode-Klasse enthält mehrere Eigenschaften, die verwendet werden, um den Zustand des Knotens zu speichern. Verwenden Sie die Selected-Eigenschaft, um zu bestimmen, ob ein Knoten ausgewählt wird. Um zu bestimmen, ob der Knoten erweitert wird, verwenden Sie die Expanded-Eigenschaft. Die DataBound-Eigenschaft wird verwendet, um zu bestimmen, ob ein Knoten an Daten gebunden wird. Wenn ein Knoten an Daten gebunden wird, können Sie das zugrunde liegenden Datenelement zugreifen, indem Sie die DataItem-Eigenschaft verwenden.
Die Klasse bietet eine Reihe von Eigenschaften, mit deren Hilfe 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. Sie können die getrennte Liste von Knoten aus dem aktuellen Knoten auf den Stammknoten stammen, indem Sie die ValuePath-Eigenschaft verwenden. Um den übergeordneten Knoten des Knotens zu bestimmen, verwenden Sie die Parent-Eigenschaft. Untergeordnete Knoten werden mit der ChildNodes-Auflistung zugegriffen.
Manchmal ist es hilfreich, weil die Struktur der Datengröße oder des benutzerdefinierten Inhalt statisch vorzudefinieren, die von der Benutzereingabe abhängig ist. Aus diesem Grund unterstützt das TreeView-Steuerelement dynamische Knotenauffüllung. Ein Knoten kann zur Laufzeit gefüllt werden, wenn er erweitert wird. Beachten Sie, dass Sie unerwartetes Verhalten abrufen können, wenn Sie asynchron erstellte Knoten beibehalten. Wenn Sie beispielsweise einen Hintergrund arbeitsthread verwenden, um Knoten asynchron aufgefüllt wird, würde die Knotenstruktur nicht sofort aufgefüllt werden, obwohl das Steuerelement mit dem Rest des Lebenszyklus der Seite fortgesetzt wird. Beim Postback kann die verzögerte Erstellung der Knoten Probleme verursachen, wenn der Ansichtszustand des Steuerelements geladen wird, aber die Knotenstruktur nicht vollständig aufgefüllt. Weitere Informationen über dynamische Knotenauffüllung finden Sie in der PopulateOnDemand-Eigenschaft.
Eine Liste der anfänglichen Eigenschaftswerte für eine Instanz von TreeNodefinden Sie im TreeNode-Konstruktor.