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 controllo 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
- 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 ed è rappresentata da un TreeNode oggetto. Un nodo che contiene altri nodi viene chiamato nodo padre. Un nodo contenuto da un altro nodo viene chiamato nodo figlio. Un nodo senza nodi figlio viene chiamato nodo foglia. Un nodo che non è contenuto da alcun 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. Questo è 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 usata per archiviare eventuali dati aggiuntivi sul nodo, ad esempio i dati usati per la gestione degli eventi postback. Un nodo archivia anche il percorso dal nodo al nodo radice nella ValuePath proprietà . La ValuePath proprietà indica la posizione del nodo rispetto al nodo radice.
Nota
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 prima 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 mostrare 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 TreeView del nodo di espansione possono anche essere nascoste completamente impostando la ShowExpandCollapse proprietà della 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 è selezionata la casella di controllo.
È 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 inserire un nodo in modalità di selezione, impostare la proprietà del NavigateUrl nodo su una stringa vuota.
Nota
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 quel numero, l'espansione del nodo avrà esito negativo e non viene generata alcuna eccezione.
Per impostazione predefinita, fare clic su un nodo in modalità di selezione pubblica la pagina nel server e genera 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, usare la SelectedNode proprietà del TreeView controllo.
Quando un nodo è in modalità di spostamento, tutti gli eventi di selezione sono 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 la cornice in cui visualizzare il contenuto collegato.
La TreeNode classe contiene diverse proprietà usate per archiviare lo stato del nodo. Utilizzare la Selected proprietà per determinare se è selezionato un nodo. Per determinare se il nodo viene espanso, usare la Expanded proprietà . La DataBound proprietà viene usata 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. Utilizzare la Depth proprietà per determinare la profondità del nodo. È possibile ottenere l'elenco delimitato di nodi dal nodo corrente al nodo radice usando la ValuePath proprietà . Per determinare il nodo padre del nodo, usare la Parent proprietà . I nodi figlio vengono accessibili usando la ChildNodes raccolta.
A volte, non è pratico predefinito staticamente la struttura ad albero a causa di dimensioni dei dati o contenuto personalizzato che dipende dall'input dell'utente. A causa di questo, il controllo supporta la TreeView popolazione dinamica del nodo. Un nodo può essere popolato in fase di esecuzione quando viene espanso. Si noti che è possibile ottenere un comportamento imprevisto se i nodi creati in modo asincrono vengono mantenuti 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. Al 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 di valori di proprietà iniziali per un'istanza di TreeNode, vedere il TreeNode costruttore.
Costruttori
TreeNode() |
Inizializza una nuova istanza della classe TreeNode senza testo o un valore. |
TreeNode(String) |
Consente l'inizializzazione di una nuova istanza della classe TreeNode con il testo specificato. |
TreeNode(String, String) |
Inizializza una nuova istanza della classe TreeNode con il testo e il valore specificati. |
TreeNode(String, String, String) |
Inizializza una nuova istanza della classe TreeNode con il testo, il valore e l'URL dell'immagine specificati. |
TreeNode(String, String, String, String, String) |
Inizializza una nuova istanza della classe TreeNode utilizzando il testo, il valore, l'URL dell'immagine, l'URL di navigazione e la destinazione specificati. |
TreeNode(TreeView, Boolean) |
Inizializza una nuova istanza della classe TreeNode utilizzando il proprietario specificato. |
Proprietà
Checked |
Ottiene o imposta un valore che indica se è selezionata la casella di controllo del nodo. |
ChildNodes |
Ottiene un insieme TreeNodeCollection che contiene i nodi figlio di primo livello del nodo corrente. |
DataBound |
Ottiene un valore che indica se il nodo è stato creato tramite l'associazione dati. |
DataItem |
Ottiene l'elemento di dati associato al controllo. |
DataPath |
Ottiene il percorso ai 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 comandi 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 al relativo stato di visualizzazione. |
NavigateUrl |
Ottiene o imposta il riferimento all'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 è compilato in modo dinamico. |
SelectAction |
Ottiene o imposta l'evento o 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 viene visualizzata una casella di controllo accanto al nodo. |
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 controllo TreeView. |
ToolTip |
Ottiene o imposta il testo della descrizione comandi per il nodo. |
Value |
Ottiene o imposta un valore non visualizzato utilizzato per memorizzare dati aggiuntivi relativi al nodo, ad esempio i dati utilizzati per la gestione degli eventi di postback. |
ValuePath |
Ottiene il percorso dal nodo radice al nodo corrente. |
Metodi
Clone() |
Crea una nuova istanza della classe TreeNode con le proprietà dell'istanza TreeNode corrente. |
Collapse() |
Comprime il nodo della struttura ad 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 della struttura ad albero corrente. |
ExpandAll() |
Espande il nodo corrente e tutti i relativi nodi figlio. |
GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
GetType() |
Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
LoadViewState(Object) |
Carica lo stato di visualizzazione del nodo salvato in precedenza. |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (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 controllo TreeView. |
ToggleExpandState() |
Passa lo stato del nodo da espanso a compresso e viceversa. |
ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
TrackViewState() |
Contrassegna il punto iniziale per la registrazione e il salvataggio delle modifiche dello stato di visualizzazione nel nodo. |
Implementazioni dell'interfaccia esplicita
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 precedentemente salvato del nodo. |
IStateManager.SaveViewState() |
Salva le modifiche apportate allo stato di visualizzazione in un oggetto Object. |
IStateManager.TrackViewState() |
Indica all'oggetto TreeNode di tenere traccia delle modifiche apportate allo stato di visualizzazione. |