Condividi tramite


TreeNode Classe

Definizione

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.

Si applica a

Vedi anche