TreeNode Klasse

Definition

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 Die Frames für das nächste Codebeispiel eingerichtet werden.


<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 mithilfe der deklarativen Syntax Objekte im TreeView Steuerelement erstellenTreeNode. Dieses 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 durch ein TreeNode -Objekt dargestellt. Ein Knoten, der andere Knoten enthält, wird als übergeordneter Knoten bezeichnet. Ein Knoten, der in einem anderen Knoten enthalten ist, wird als untergeordneter Knoten bezeichnet. Ein Knoten ohne untergeordnete Knoten wird als Blattknoten bezeichnet. Ein Knoten, der von keinem anderen Knoten enthalten ist, aber der Vorgänger aller anderen Knoten ist, ist der Stammknoten. Ein Knoten kann sowohl ein übergeordneter als auch ein untergeordneter Knoten sein, aber Stamm-, übergeordnete und Blattknoten schließen sich gegenseitig aus. Mehrere visuelle und verhaltensbezogene Eigenschaften von Knoten werden dadurch bestimmt, ob es sich bei einem Knoten um einen Stamm-, übergeordneten oder Blattknoten handelt.

Obwohl eine typische Struktur nur über einen Stammknoten verfügt, können Sie mit dem TreeView Steuerelement ihrer Struktur mehrere Stammknoten hinzufügen. Dies ist nützlich, wenn Sie Artikellisten anzeigen möchten, ohne einen einzelnen Standard Stammknoten anzuzeigen, wie in einer Liste mit Produktkategorien.

Ein Knoten speichert Daten hauptsächlich in zwei Eigenschaften, der Text -Eigenschaft und der Value -Eigenschaft. Der Wert der Text -Eigenschaft wird im -Steuerelement angezeigt, und die Value -Eigenschaft wird verwendet, um alle zusätzlichen Daten zum Knoten zu speichern, z. B. Daten, die für die TreeView Behandlung 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 über einen eindeutigen Wert für die Value Eigenschaft verfügen. Das TreeView Steuerelement kann nicht zwischen verschiedenen Knoten auf derselben Ebene unterscheiden, die denselben Wert aufweisen. Wenn der Benutzer in diesem Szenario auf einen Knoten mit einem doppelten Wert klickt, wird der Knoten ausgewählt, der TreeView zuerst im Steuerelement angezeigt wird.

Ein TreeNode Objekt besteht aus den folgenden vier Elementen der Benutzeroberfläche, die angepasst oder ausgeblendet werden können:

  • Ein Symbol für den Erweiterungsknotenindikator, mit dem angezeigt wird, ob der Knoten erweitert, reduziert oder nicht erweiterbar ist.

  • Ein optionales Kontrollkästchen, das dem Knoten zugeordnet ist.

  • Ein optionales Knotenimage.

  • Der Knotentext.

Sie können ein benutzerdefiniertes Image für die erweiterbaren, faltbaren und nicht erweiterbaren Knotenindikatoren angeben, indem Sie die ExpandImageUrlEigenschaften , CollapseImageUrlund NoExpandImageUrl der TreeView -Klasse festlegen. Die Symbole des Erweiterungsknotenindikators können sogar vollständig ausgeblendet werden, indem die ShowExpandCollapse -Eigenschaft der TreeView -Klasse auf falsefestgelegt wird.

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 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 Eigenschaft des Knotens ShowCheckBox festlegen. Wenn ein Kontrollkästchen angezeigt wird, bestimmen Sie mithilfe der Checked -Eigenschaft, 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 sich in einem von zwei Modi befinden: Auswahlmodus oder Navigationsmodus. Standardmäßig befindet sich ein Knoten im Auswahlmodus. Um einen Knoten in den Navigationsmodus zu versetzen, legen Sie die Eigenschaft des Knotens NavigateUrl auf einen anderen Wert als eine leere Zeichenfolge ("") fest. Um einen Knoten in den Auswahlmodus zu versetzen, legen Sie die Eigenschaft des Knotens NavigateUrl auf eine leere Zeichenfolge fest.

Hinweis

Einige Internetbrowser haben eine Einschränkung, die sich auf die Leistung des Steuerelements TreeView auswirken kann. Microsoft Internet Explorer 6.0 hat beispielsweise eine URL-Zeichengrenze von 2067 Zeichen, die sie postet. 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.

Wenn Sie auf einen Knoten klicken, der sich im Auswahlmodus befindet, wird die Seite standardmäßig an den Server zurückgesetzt 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. Verwenden Sie die SelectedNode -Eigenschaft des TreeView Steuerelements, um zu bestimmen, auf welchen Knoten im Auswahlmodus geklickt wurde.

Wenn sich ein Knoten im Navigationsmodus befindet, werden alle Auswahlereignisse für diesen Knoten deaktiviert. Wenn Sie im Navigationsmodus auf den Knoten klicken, wird der Benutzer zur angegebenen URL weiterverweisen. Optional können Sie die Target -Eigenschaft festlegen, um das Fenster oder den Frame anzugeben, in dem bzw. 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 zu bestimmen, ob ein Knoten ausgewählt ist. Verwenden Sie die -Eigenschaft, um zu bestimmen, ob der Expanded Knoten erweitert ist. 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 stellt mehrere Eigenschaften bereit, 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. Sie können die durch Trennzeichen getrennte Liste der Knoten vom aktuellen Knoten zum stammknoten abrufen, indem Sie die ValuePath -Eigenschaft verwenden. Verwenden Sie die -Eigenschaft, um den Parent übergeordneten Knoten des Knotens zu bestimmen. Auf untergeordnete Knoten wird über die ChildNodes Auflistung zugegriffen.

Manchmal ist es aufgrund der Datengröße oder benutzerdefinierter Inhalte, die von der Benutzereingabe abhängen, nicht praktikabel, die Struktur statisch vorzudefinieren. Aus diesem Fall unterstützt das Steuerelement die TreeView dynamische Knotenauffüllung. Ein Knoten kann zur Laufzeit aufgefüllt werden, wenn er erweitert wird. Beachten Sie, dass unerwartetes Verhalten auftreten kann, wenn Sie asynchron erstellte Knoten beibehalten. Wenn Sie beispielsweise einen Hintergrundarbeitsthread verwenden, um Knoten asynchron aufzufüllen, wird die Knotenstruktur möglicherweise nicht sofort aufgefüllt, obwohl das Steuerelement mit dem rest des Seitenlebenszyklus fortfährt. Beim Postback kann die verzögerte Erstellung der Knoten Probleme verursachen, wenn der Ansichtszustand des Steuerelements geladen, die Knotenstruktur jedoch nicht vollständig aufgefüllt ist. Weitere Informationen zur dynamischen Knotenauffüllung finden Sie in der PopulateOnDemand -Eigenschaft.

Eine Liste der anfänglichen Eigenschaftswerte für eine instance von TreeNodefinden 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.

Gilt für:

Weitere Informationen