TreeNode Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Rappresenta un nodo nel TreeView controllo .
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
- Ereditarietà
-
TreeNode
- Implementazioni
Esempio
Nell'esempio di codice seguente viene illustrato come configurare i frame per l'esempio di codice successivo.
<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>
Nell'esempio di codice seguente viene illustrato come usare la sintassi dichiarativa per creare TreeNode oggetti nel TreeView controllo . Questo esempio viene usato all'interno del frameset dell'esempio precedente per visualizzare un sommario.
<%@ 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>
Commenti
Il TreeView controllo è costituito da nodi. Ogni voce nell'albero viene chiamata nodo e rappresentata da un TreeNode oggetto . Un nodo che contiene altri nodi è denominato nodo padre. Un nodo contenuto in un altro nodo è denominato nodo figlio. Un nodo senza nodi figlio viene chiamato nodo foglia. Un nodo che non è contenuto da nessun altro nodo, ma è il predecessore di tutti gli altri nodi è il nodo radice. Un nodo può essere sia padre che figlio, ma i nodi radice, padre e foglia si escludono a vicenda. Diverse proprietà visive e comportamentali dei nodi sono determinate dal fatto che un nodo sia un nodo radice, padre o foglia .
Anche se un albero tipico ha un solo nodo radice, il TreeView controllo consente di aggiungere più nodi radice alla struttura ad albero. Ciò è utile quando si desidera visualizzare elenchi di elementi senza visualizzare un singolo nodo radice principale, come in un elenco di categorie di prodotti.
Un nodo archivia principalmente i dati in due proprietà, la Text proprietà e la Value proprietà . Il valore della Text proprietà viene visualizzato nel TreeView controllo e la Value proprietà viene utilizzata per archiviare eventuali dati aggiuntivi sul nodo, ad esempio i dati utilizzati per la gestione degli eventi di postback. Un nodo archivia anche il percorso dal nodo al relativo nodo radice nella ValuePath proprietà . La ValuePath proprietà indica la posizione del nodo rispetto al nodo radice.
Annotazioni
I nodi allo stesso livello devono avere un valore univoco per la Value proprietà. Il TreeView controllo non può distinguere tra nodi diversi allo stesso livello con lo stesso valore. In questo scenario, se l'utente fa clic su un nodo con un valore duplicato, viene selezionato il nodo visualizzato per primo nel TreeView controllo.
Un TreeNode oggetto è costituito dai quattro elementi dell'interfaccia utente seguenti, che possono essere personalizzati o nascosti:
Icona dell'indicatore del nodo di espansione usata per indicare se il nodo è espanso, compresso o non espandibile.
Casella di controllo facoltativa associata al nodo.
Immagine del nodo facoltativa.
Testo del nodo.
È possibile specificare un'immagine personalizzata per gli indicatori di nodo espandibili, comprimibili e non espandibili impostando le ExpandImageUrlproprietà , CollapseImageUrle NoExpandImageUrl della TreeView classe . Le icone dell'indicatore del nodo di espansione possono anche essere nascoste completamente impostando la ShowExpandCollapse proprietà della TreeView classe su false.
Per visualizzare una casella di controllo accanto a un nodo, impostare la ShowCheckBoxes proprietà della TreeView classe . Quando la ShowCheckBoxes proprietà è impostata su un valore diverso da TreeNodeType.Node, le caselle di controllo vengono visualizzate accanto al tipo di nodo specificato. È possibile eseguire l'override selettiva della casella di controllo di un singolo nodo impostando la proprietà del ShowCheckBox nodo. Quando viene visualizzata una casella di controllo, utilizzare la Checked proprietà per determinare se la casella di controllo è selezionata.
È possibile visualizzare un'immagine in un nodo impostando la ImageUrl proprietà . Questa immagine viene visualizzata accanto al testo del nodo.
Il testo di un nodo nel TreeView controllo può essere in una delle due modalità: modalità di selezione o modalità di spostamento. Per impostazione predefinita, un nodo è in modalità di selezione. Per inserire un nodo in modalità di spostamento, impostare la proprietà del NavigateUrl nodo su un valore diverso da una stringa vuota (""). Per impostare un nodo in modalità di selezione, impostare la proprietà del NavigateUrl nodo su una stringa vuota.
Annotazioni
Alcuni browser Internet hanno una limitazione che può influire sulle prestazioni del TreeView controllo. Ad esempio, Microsoft Internet Explorer 6.0 ha un limite di caratteri URL di 2067 caratteri che pubblica. Se il numero di caratteri in un URL di un nodo è maggiore di tale numero, l'espansione del nodo avrà esito negativo e non verrà generata alcuna eccezione.
Per impostazione predefinita, facendo clic su un nodo in modalità di selezione, viene visualizzata nuovamente la pagina nel server e viene generato l'evento SelectedNodeChanged . Facoltativamente, è possibile specificare un evento diverso da generare impostando la proprietà del SelectAction nodo. Per altre informazioni, vedere SelectAction. Per determinare quale nodo è stato fatto clic in modalità di selezione, utilizzare la SelectedNode proprietà del TreeView controllo .
Quando un nodo è in modalità di spostamento, tutti gli eventi di selezione vengono disabilitati per tale nodo. Facendo clic sul nodo in modalità di spostamento, l'utente viene diretto all'URL specificato. Facoltativamente, è possibile impostare la Target proprietà per specificare la finestra o il frame in cui visualizzare il contenuto collegato.
La TreeNode classe contiene diverse proprietà utilizzate per archiviare lo stato del nodo. Utilizzare la Selected proprietà per determinare se è selezionato un nodo. Per determinare se il nodo è espanso, utilizzare la Expanded proprietà . La DataBound proprietà viene utilizzata per determinare se un nodo è associato ai dati. Quando un nodo è associato ai dati, è possibile accedere all'elemento di dati sottostante usando la DataItem proprietà .
La classe fornisce diverse proprietà che consentono di determinare la posizione di un nodo rispetto ad altri nodi nell'albero. Usare la Depth proprietà per determinare la profondità del nodo. È possibile ottenere l'elenco delimitato di nodi dal nodo corrente al relativo nodo radice usando la ValuePath proprietà . Per determinare il nodo padre del nodo, usare la Parent proprietà . È possibile accedere ai nodi figlio usando la ChildNodes raccolta.
In alcuni casi, non è pratico definire in modo statico la struttura ad albero a causa delle dimensioni dei dati o del contenuto personalizzato che dipende dall'input dell'utente. Per questo motivo, il controllo supporta il TreeView popolamento di nodi dinamici. Un nodo può essere popolato in fase di esecuzione quando viene espanso. Si noti che è possibile ottenere un comportamento imprevisto se si salvano in modo permanente i nodi creati in modo asincrono. Ad esempio, se si usa un thread di lavoro in background per popolare i nodi in modo asincrono, l'albero dei nodi potrebbe non essere popolato immediatamente anche se il controllo procede con il resto del ciclo di vita della pagina. Dopo il postback, la creazione ritardata dei nodi può causare problemi quando viene caricato lo stato di visualizzazione del controllo, ma l'albero dei nodi non è completamente popolato. Per altre informazioni sulla popolazione dinamica dei nodi, vedere la PopulateOnDemand proprietà .
Per un elenco dei valori iniziali delle proprietà per un'istanza di TreeNode, vedere il costruttore TreeNode.
Costruttori
| Nome | Descrizione |
|---|---|
| TreeNode() |
Inizializza una nuova istanza della TreeNode classe senza testo o un valore. |
| TreeNode(String, String, String, String, String) |
Inizializza una nuova istanza della TreeNode classe utilizzando il testo, il valore, l'URL dell'immagine, l'URL di spostamento e la destinazione specificati. |
| TreeNode(String, String, String) |
Inizializza una nuova istanza della TreeNode classe utilizzando il testo, il valore e l'URL dell'immagine specificati. |
| TreeNode(String, String) |
Inizializza una nuova istanza della TreeNode classe utilizzando il testo e il valore specificati. |
| TreeNode(String) |
Inizializza una nuova istanza della TreeNode classe utilizzando il testo specificato. |
| TreeNode(TreeView, Boolean) |
Inizializza una nuova istanza della TreeNode classe utilizzando il proprietario specificato. |
Proprietà
| Nome | Descrizione |
|---|---|
| Checked |
Ottiene o imposta un valore che indica se la casella di controllo del nodo è selezionata. |
| ChildNodes |
Ottiene una TreeNodeCollection raccolta contenente i nodi figlio di primo livello del nodo corrente. |
| DataBound |
Ottiene un valore che indica se il nodo è stato creato tramite il data binding. |
| DataItem |
Ottiene l'elemento di dati associato al controllo . |
| DataPath |
Ottiene il percorso dei dati associati al nodo. |
| Depth |
Ottiene la profondità del nodo. |
| Expanded |
Ottiene o imposta un valore che indica se il nodo è espanso. |
| ImageToolTip |
Ottiene o imposta il testo della descrizione comando per l'immagine visualizzata accanto a un nodo. |
| ImageUrl |
Ottiene o imposta l'URL di un'immagine visualizzata accanto al nodo. |
| IsTrackingViewState |
Ottiene un valore che indica se il nodo salva le modifiche apportate allo stato di visualizzazione. |
| NavigateUrl |
Ottiene o imposta l'URL a cui passare quando si fa clic sul nodo. |
| Parent |
Ottiene il nodo padre del nodo corrente. |
| PopulateOnDemand |
Ottiene o imposta un valore che indica se il nodo viene popolato in modo dinamico. |
| SelectAction |
Ottiene o imposta l'evento o gli eventi da generare quando viene selezionato un nodo. |
| Selected |
Ottiene o imposta un valore che indica se il nodo è selezionato. |
| ShowCheckBox |
Ottiene o imposta un valore che indica se accanto al nodo viene visualizzata una casella di controllo. |
| Target |
Ottiene o imposta la finestra o il frame di destinazione in cui visualizzare il contenuto della pagina Web associato a un nodo. |
| Text |
Ottiene o imposta il testo visualizzato per il nodo nel TreeView controllo . |
| ToolTip |
Ottiene o imposta il testo della descrizione comando per il nodo. |
| Value |
Ottiene o imposta un valore non visualizzato utilizzato per archiviare dati aggiuntivi sul nodo, ad esempio i dati utilizzati per la gestione degli eventi di postback. |
| ValuePath |
Ottiene il percorso dal nodo radice al nodo corrente. |
Metodi
| Nome | Descrizione |
|---|---|
| Clone() |
Crea una nuova istanza della TreeNode classe con le proprietà dell'istanza corrente TreeNode . |
| Collapse() |
Comprime il nodo dell'albero corrente. |
| CollapseAll() |
Comprime il nodo corrente e tutti i relativi nodi figlio. |
| Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
| Expand() |
Espande il nodo dell'albero corrente. |
| ExpandAll() |
Espande il nodo corrente e tutti i relativi nodi figlio. |
| GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
| GetType() |
Ottiene il Type dell'istanza corrente. (Ereditato da Object) |
| LoadViewState(Object) |
Carica lo stato di visualizzazione salvato in precedenza del nodo. |
| MemberwiseClone() |
Crea una copia superficiale del Objectcorrente. (Ereditato da Object) |
| RenderPostText(HtmlTextWriter) |
Consente agli sviluppatori di controlli di aggiungere ulteriore rendering al nodo. |
| RenderPreText(HtmlTextWriter) |
Consente agli sviluppatori di controlli di aggiungere ulteriore rendering al nodo. |
| SaveViewState() |
Salva lo stato di visualizzazione corrente del nodo. |
| Select() |
Seleziona il nodo corrente nel TreeView controllo . |
| ToggleExpandState() |
Alterna tra lo stato espanso e compresso del nodo. |
| ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
| TrackViewState() |
Contrassegna il punto iniziale in cui iniziare a tenere traccia e salvare le modifiche dello stato di visualizzazione nel nodo. |
Implementazioni dell'interfaccia esplicita
| Nome | Descrizione |
|---|---|
| ICloneable.Clone() |
Crea una copia dell'oggetto TreeNode. |
| IStateManager.IsTrackingViewState |
Per una descrizione di questo membro, vedere IsTrackingViewState. |
| IStateManager.LoadViewState(Object) |
Carica lo stato di visualizzazione salvato in precedenza del nodo. |
| IStateManager.SaveViewState() |
Salva le modifiche dello stato di visualizzazione in un oggetto Object. |
| IStateManager.TrackViewState() |
Indica all'oggetto TreeNode di tenere traccia delle modifiche apportate allo stato di visualizzazione. |