TreeNodeBinding Classe

Definizione

Definisce la relazione tra un elemento dati e il nodo a cui è associato in un controllo TreeView.

public ref class TreeNodeBinding sealed : ICloneable, System::Web::UI::IDataSourceViewSchemaAccessor, System::Web::UI::IStateManager
public sealed class TreeNodeBinding : ICloneable, System.Web.UI.IDataSourceViewSchemaAccessor, System.Web.UI.IStateManager
type TreeNodeBinding = class
    interface IStateManager
    interface ICloneable
    interface IDataSourceViewSchemaAccessor
Public NotInheritable Class TreeNodeBinding
Implements ICloneable, IDataSourceViewSchemaAccessor, IStateManager
Ereditarietà
TreeNodeBinding
Implementazioni

Esempio

La tabella seguente mostra alcune dichiarazioni di associazione del nodo ad albero di esempio.

Associazione di esempio Descrizione
<asp:TreeNodeBinding TextField="Title" ValueField= "ID"/> Associa rispettivamente le Text proprietà e di tutti i nodi nell'albero ai Title campi e ID Value dell'origine dati. Tutti i nodi usano questa dichiarazione di associazione nodo albero perché le DataMember proprietà e Depth non sono impostate.
<asp:TreeNodeBinding DataMember= "Book" TextField= "Title" ValueField= "ID"/> Associa rispettivamente le Text proprietà e di tutti i nodi nell'albero ai Title campi e ID Value dell'elemento Book di dati nell'origine dati.
<asp:TreeNodeBinding Depth="2" TextField= "Title" ValueField= "ID"/> Associa rispettivamente le Text proprietà e di tutti i nodi con una profondità di 2 nell'albero ai Title campi e ID Value dell'elemento di dati nell'origine dati.
<asp:TreeNodeBinding DataMember="Book" Depth= "2" TextField= "Title" ValueField= "ID" ImageUrl= "Image.jpg"> Associa rispettivamente le Text proprietà e di tutti i nodi con una profondità di 2 nell'albero ai Title campi e ID Value dell'elemento Book di dati nell'origine dati. Associa anche la ImageUrl proprietà dei nodi a un valore statico.

Questa sezione contiene tre esempi di codice. Il primo esempio di codice illustra come usare TreeNodeBinding gli oggetti in modo dichiarativo per definire la relazione tra un nodo e un elemento di dati. Il secondo esempio di codice illustra come usare TreeNodeBinding oggetti a livello di codice per definire la relazione tra un nodo e un elemento di dati. Il terzo esempio di codice fornisce dati XML di esempio per i primi e i secondi esempi di codice.

Nell'esempio di codice seguente viene illustrato come usare TreeNodeBinding gli oggetti in modo dichiarativo per definire la relazione tra un nodo e un elemento di dati. Per il corretto funzionamento di questo esempio, è necessario copiare i dati XML di esempio, forniti dopo questo esempio di codice, in un file denominato Book.xml.


<%@ 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 XML Data Binding Example</title>
</head>
<body>
    <form id="form1" runat="server">
    
      <h3>TreeView XML Data Binding Example</h3>
    
      <asp:TreeView id="BookTreeView" 
        DataSourceID="BookXmlDataSource"
        runat="server">
         
        <DataBindings>
          <asp:TreeNodeBinding DataMember="Book" TextField="Title"/>
          <asp:TreeNodeBinding DataMember="Chapter" TextField="Heading"/>
          <asp:TreeNodeBinding DataMember="Section" TextField="Heading"/>
        </DataBindings>
         
      </asp:TreeView>

      <asp:XmlDataSource id="BookXmlDataSource"  
        DataFile="Book.xml"
        runat="server">
      </asp:XmlDataSource>
    
    </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 XML Data Binding Example</title>
</head>
<body>
    <form id="form1" runat="server">
    
      <h3>TreeView XML Data Binding Example</h3>
    
      <asp:TreeView id="BookTreeView" 
        DataSourceID="BookXmlDataSource"
        runat="server">
         
        <DataBindings>
          <asp:TreeNodeBinding DataMember="Book" TextField="Title"/>
          <asp:TreeNodeBinding DataMember="Chapter" TextField="Heading"/>
          <asp:TreeNodeBinding DataMember="Section" TextField="Heading"/>
        </DataBindings>
         
      </asp:TreeView>

      <asp:XmlDataSource id="BookXmlDataSource"  
        DataFile="Book.xml"
        runat="server">
      </asp:XmlDataSource>
    
    </form>
  </body>
</html>

Nell'esempio di codice seguente viene illustrato come usare TreeNodeBinding oggetti a livello di codice per definire la relazione tra un nodo e un elemento di dati. Per il corretto funzionamento di questo esempio, è necessario copiare i dati XML di esempio forniti nell'esempio di codice successivo in un file denominato Book.xml.


<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

  void Page_Load(Object sender, EventArgs e)
  {

    // Create a new TreeView control.
    TreeView NewTree = new TreeView();

    // Set the properties of the TreeView control.
    NewTree.ID = "BookTreeView";
    NewTree.DataSourceID = "BookXmlDataSource";

    // Create the tree node binding relationship.

    // Create the root node binding.
    TreeNodeBinding RootBinding = new TreeNodeBinding();
    RootBinding.DataMember = "Book";
    RootBinding.TextField = "Title";

    // Create the parent node binding.
    TreeNodeBinding ParentBinding = new TreeNodeBinding();
    ParentBinding.DataMember = "Chapter";
    ParentBinding.TextField = "Heading";

    // Create the leaf node binding.
    TreeNodeBinding LeafBinding = new TreeNodeBinding();
    LeafBinding.DataMember = "Section";
    LeafBinding.TextField = "Heading";

    // Add bindings to the DataBindings collection.
    NewTree.DataBindings.Add(RootBinding);
    NewTree.DataBindings.Add(ParentBinding); 
    NewTree.DataBindings.Add(LeafBinding);

    // Manually register the event handler for the SelectedNodeChanged event.
    NewTree.SelectedNodeChanged += new EventHandler(this.Node_Change);

    // Add the TreeView control to the Controls collection of the PlaceHolder control.
    ControlPlaceHolder.Controls.Add(NewTree);

  }

  void Node_Change(Object sender, EventArgs e)
  {

    // Retrieve the TreeView control from the Controls collection of the PlaceHolder control.
    TreeView LocalTree = (TreeView)ControlPlaceHolder.FindControl("BookTreeView");

    // Display the selected node.
    Message.Text = "You selected: " + LocalTree.SelectedNode.Text;

  }

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>TreeView Constructor Example</title>
</head>
<body>
    <form id="form1" runat="server">
    
      <h3>TreeView Constructor Example</h3>
      
      <asp:PlaceHolder id="ControlPlaceHolder" runat="server">
      </asp:PlaceHolder>
   
      <asp:XmlDataSource id="BookXmlDataSource"  
        DataFile="Book.xml"
        runat="server">
      </asp:XmlDataSource>
      
      <br /><br />
      
      <asp:Label id="Message" runat="server"/>
    
    </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">
<script runat="server">

  Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)

    ' Create a new TreeView control.
    Dim NewTree As New TreeView

    ' Set the properties of the TreeView control.
    NewTree.ID = "BookTreeView"
    NewTree.DataSourceID = "BookXmlDataSource"

    ' Create the tree node binding relationship.

    ' Create the root node binding.
    Dim RootBinding As New TreeNodeBinding
    RootBinding.DataMember = "Book"
    RootBinding.TextField = "Title"

    ' Create the parent node binding.
    Dim ParentBinding As New TreeNodeBinding
    ParentBinding.DataMember = "Chapter"
    ParentBinding.TextField = "Heading"

    ' Create the leaf node binding.
    Dim LeafBinding As New TreeNodeBinding
    LeafBinding.DataMember = "Section"
    LeafBinding.TextField = "Heading"

    ' Add bindings to the DataBindings collection.
    NewTree.DataBindings.Add(RootBinding)
    NewTree.DataBindings.Add(ParentBinding)
    NewTree.DataBindings.Add(LeafBinding)

    ' Manually register the event handler for the SelectedNodeChanged event.
    AddHandler NewTree.SelectedNodeChanged, AddressOf Node_Change

    ' Add the TreeView control to the Controls collection of the PlaceHolder control.
    ControlPlaceHolder.Controls.Add(NewTree)

  End Sub

  Sub Node_Change(ByVal sender As Object, ByVal e As EventArgs)

    ' Retrieve the TreeView control from the Controls collection of the PlaceHolder control.
    Dim LocalTree As TreeView = CType(ControlPlaceHolder.FindControl("BookTreeView"), TreeView)

    ' Display the selected node.
    Message.Text = "You selected: " & LocalTree.SelectedNode.Text

  End Sub

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>TreeView Constructor Example</title>
</head>
<body>
    <form id="form1" runat="server">
    
      <h3>TreeView Constructor Example</h3>
      
      <asp:PlaceHolder id="ControlPlaceHolder" runat="server">
      </asp:PlaceHolder>
   
      <asp:XmlDataSource id="BookXmlDataSource"  
        DataFile="Book.xml"
        runat="server">
      </asp:XmlDataSource>
      
      <br /><br />
      
      <asp:Label id="Message" runat="server"/>
    
    </form>
  </body>
</html>

Nell'esempio di codice seguente vengono forniti dati XML di esempio per gli esempi di codice precedenti.

<Book Title="Book Title">  
    <Chapter Heading="Chapter 1">  
        <Section Heading="Section 1">  
        </Section>  
        <Section Heading="Section 2">  
        </Section>  
    </Chapter>  
    <Chapter Heading="Chapter 2">  
        <Section Heading="Section 1">  
        </Section>  
    </Chapter>  
</Book>  

Commenti

Quando il controllo è associato a un'origine TreeView dati in cui ogni elemento dati contiene più campi (ad esempio un elemento XML con diversi attributi), un nodo visualizza il valore restituito dal ToString metodo dell'elemento di dati, per impostazione predefinita. Nel caso di un elemento XML, il nodo visualizza il nome dell'elemento, che mostra la struttura sottostante dell'albero, ma non è molto utile in caso contrario. È possibile associare le proprietà di un nodo a un campo specifico specificando associazioni di nodi ad albero. Un TreeNodeBinding oggetto definisce la relazione tra ogni elemento di dati e il nodo a cui si associa.

Il TreeView controllo archivia TreeNodeBinding gli oggetti nella DataBindings proprietà e applica le associazioni all'origine dati per creare una relazione uno-a-uno tra la gerarchia dell'albero e la gerarchia dell'origine dati. Per ogni elemento di dati nell'origine dati, il TreeView controllo tenta di associare l'elemento di dati a un TreeNodeBinding oggetto per creare l'oggetto corrispondente TreeNode .

Quando si crea un TreeNodeBinding oggetto, è necessario specificare i criteri per l'associazione. I criteri indicano quando un elemento dati deve essere associato a un nodo. È possibile specificare la Depth proprietà o DataMember o entrambe le proprietà. Esiste un lieve aumento delle prestazioni specificando entrambi. Una profondità del nodo specifica il livello del nodo associato. Ad esempio, la dichiarazione seguente TreeNodeBinding associa i Name campi e dell'origine dati alle Text proprietà e ID Value, rispettivamente, di tutti i nodi con una profondità di 0:

<asp:TreeNodeBinding Depth="0" TextField="Name" ValueField="ID">  

Un membro dati specifica il tipo dell'elemento di dati nell'origine dati sottostante, ma può rappresentare informazioni diverse a seconda dell'origine dati. Ogni elemento di dati in un'origine dati gerarchica (rappresentata da un'interfaccia System.Web.UI.IHierarchyData ) espone una IHierarchyData.Type proprietà, che specifica il tipo dell'elemento di dati. Ad esempio, il membro dati per un elemento XML specifica il nome dell'elemento. Quando un'origine dati contiene più tipi di elemento di dati, il membro dati specifica il tipo di elemento di dati da usare. La dichiarazione seguente TreeNodeBinding associa gli <Book> elementi di un XmlDataSource controllo a tutti i nodi dell'albero, indipendentemente dalla posizione nella gerarchia:

<asp:TreeNodeBinding DataMember="Book" TextField="Title" ValueField= "ISBN">  

Dopo aver stabilito i criteri di associazione, è quindi possibile associare una proprietà di un TreeNode oggetto che può essere associato a un valore. È possibile associare a un campo di un elemento di dati o a un valore statico. Se associato a un valore statico, tutti gli TreeNode oggetti a cui viene applicato l'oggetto TreeNodeBinding condividono lo stesso valore.

Nota

È possibile eseguire l'override selettiva di una proprietà associata in un TreeNode oggetto impostando la proprietà corrispondente direttamente nel nodo.

Nella tabella seguente sono elencate le proprietà della TreeNodeBinding classe che consentono di associare una proprietà dell'oggetto TreeNode a un campo di un elemento dati.

Proprietà Descrizione
ImageUrlField Campo da associare alla ImageUrl proprietà di un TreeNode oggetto.
ImageToolTipField Campo da associare alla ImageToolTip proprietà di un TreeNode oggetto.
NavigateUrlField Campo da associare alla NavigateUrl proprietà di un TreeNode oggetto.
TextField Campo da associare alla Text proprietà di un TreeNode oggetto.
ToolTipField Campo da associare alla ToolTip proprietà di un TreeNode oggetto.
ValueField Campo da associare alla Value proprietà di un TreeNode oggetto.

Nella tabella seguente sono elencate le proprietà della TreeNodeBinding classe che consentono di associare una proprietà dell'oggetto TreeNode a un valore statico.

Proprietà Descrizione
ImageUrl Valore statico da associare alla ImageUrl proprietà di un TreeNode oggetto.
ImageToolTip Valore statico da associare alla ImageToolTip proprietà di un TreeNode oggetto.
NavigateUrl Valore statico da associare alla NavigateUrl proprietà di un TreeNode oggetto.
PopulateOnDemand Valore statico da associare alla PopulateOnDemand proprietà di un TreeNode oggetto.
SelectAction Valore statico da associare alla SelectAction proprietà di un TreeNode oggetto.
ShowCheckBox Valore statico da associare alla ShowCheckBox proprietà di un TreeNode oggetto.
Target Valore statico da associare alla Target proprietà di un TreeNode oggetto.
Text Valore statico da associare alla Text proprietà di un TreeNode oggetto.
ToolTip Valore statico da associare alla ToolTip proprietà di un TreeNode oggetto.
Value Valore statico da associare alla Value proprietà di un TreeNode oggetto.

Se vengono definiti oggetti in conflitto TreeNodeBinding , il TreeView controllo applica le associazioni dei nodi dell'albero nell'ordine di precedenza seguente:

  1. Oggetto TreeNodeBinding che definisce e corrisponde sia a una profondità che a un membro dati.

  2. Oggetto TreeNodeBinding che definisce e corrisponde solo al membro dati.

  3. Oggetto TreeNodeBinding che definisce e corrisponde solo alla profondità.

  4. Oggetto TreeNodeBinding che definisce né la profondità né il membro dati. Questo tipo di associazione di nodi albero viene applicato a tutti i nodi dell'albero.

  5. Oggetto TreeNodeBinding che non ha una corrispondenza nell'origine dati. In questo caso, il valore restituito dal ToString metodo dell'elemento di dati viene quindi associato alle Text proprietà e Value dei nodi a cui viene applicato l'oggetto TreeNodeBinding .

La TreeNodeBinding classe consente anche di formattare il testo visualizzato in un nodo impostando la FormatString proprietà .

Costruttori

TreeNodeBinding()

Inizializza una nuova istanza della classe TreeNodeBinding.

Proprietà

DataMember

Ottiene o imposta il valore da confrontare con una proprietà Type di un elemento dati per determinare se applicare l'associazione di nodi della struttura ad albero.

Depth

Ottiene o imposta la profondità del nodo alla quale viene applicato l'oggetto TreeNodeBinding.

FormatString

Ottiene o imposta la stringa che specifica il formato di visualizzazione del testo di un nodo a cui è applicato l'oggetto TreeNodeBinding.

ImageToolTip

Ottiene o imposta il testo di descrizione comandi di un'immagine visualizzata accanto a un nodo a cui è applicato l'oggetto TreeNodeBinding.

ImageToolTipField

Ottiene o imposta il nome del campo dall'origine dati per l'associazione alla proprietà ImageToolTip di un oggetto TreeNode a cui è applicato l'oggetto TreeNodeBinding.

ImageUrl

Ottiene o imposta l'URL di un'immagine visualizzata accanto a un nodo a cui è applicato l'oggetto TreeNodeBinding.

ImageUrlField

Ottiene o imposta il nome del campo dall'origine dati per l'associazione alla proprietà ImageUrl di un oggetto TreeNode a cui è applicato l'oggetto TreeNodeBinding.

NavigateUrl

Ottiene o imposta l'URL a cui collegarsi quando si fa clic su un nodo a cui è applicato l'oggetto TreeNodeBinding.

NavigateUrlField

Ottiene o imposta il nome del campo dall'origine dati per l'associazione alla proprietà NavigateUrl di un oggetto TreeNode a cui è applicato l'oggetto TreeNodeBinding.

PopulateOnDemand

Ottiene o imposta un valore che indica se il nodo a cui è applicato l'oggetto TreeNodeBinding viene compilato in modo dinamico.

SelectAction

Ottiene o imposta gli eventi da generare quando si seleziona un nodo a cui è applicato l'oggetto TreeNodeBinding.

ShowCheckBox

Ottiene o imposta un valore che indica se una casella di controllo viene visualizzata accanto a un nodo a cui è applicato l'oggetto TreeNodeBinding.

Target

Ottiene o imposta la finestra o il frame di destinazione in cui visualizzare il contenuto della pagina Web associato a un nodo a cui è applicato l'oggetto TreeNodeBinding.

TargetField

Ottiene o imposta il nome del campo dall'origine dati per l'associazione alla proprietà Target di un oggetto TreeNode a cui è applicato l'oggetto TreeNodeBinding.

Text

Ottiene o imposta il testo visualizzato per il nodo a cui è applicato l'oggetto TreeNodeBinding.

TextField

Ottiene o imposta il nome del campo dall'origine dati per l'associazione alla proprietà Text di un oggetto TreeNode a cui è applicato l'oggetto TreeNodeBinding.

ToolTip

Ottiene o imposta il testo della descrizione comandi per un nodo a cui è applicato l'oggetto TreeNodeBinding.

ToolTipField

Ottiene o imposta il nome del campo dall'origine dati per l'associazione alla proprietà ToolTip di un oggetto TreeNode a cui è applicato l'oggetto TreeNodeBinding.

Value

Ottiene o imposta un valore visualizzato che non viene visualizzato ma utilizzato per memorizzare dati aggiuntivi relativi a un nodo a cui è applicato l'oggetto TreeNodeBinding, ad esempio i dati utilizzati per gestire gli eventi di postback.

ValueField

Ottiene o imposta il nome del campo dall'origine dati per l'associazione alla proprietà Value di un oggetto TreeNode a cui è applicato l'oggetto TreeNodeBinding.

Metodi

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ToString()

Restituisce la proprietà DataMember.

Implementazioni dell'interfaccia esplicita

ICloneable.Clone()

Crea una copia dell'oggetto TreeNodeBinding.

IDataSourceViewSchemaAccessor.DataSourceViewSchema

Per una descrizione di questo membro, vedere DataSourceViewSchema.

IStateManager.IsTrackingViewState

Per una descrizione di questo membro, vedere IsTrackingViewState.

IStateManager.LoadViewState(Object)

Carica lo stato di visualizzazione del nodo salvato in precedenza.

IStateManager.SaveViewState()

Salva le modifiche apportate allo stato di visualizzazione di un oggetto.

IStateManager.TrackViewState()

Indica all'oggetto TreeNode di tenere traccia delle modifiche apportate allo stato di visualizzazione.

Si applica a

Vedi anche