Condividi tramite


TreeNode Classe

Definizione

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.

Si applica a

Vedi anche