Condividi tramite


TreeNodeBinding.PopulateOnDemand Proprietà

Definizione

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

public:
 property bool PopulateOnDemand { bool get(); void set(bool value); };
public bool PopulateOnDemand { get; set; }
member this.PopulateOnDemand : bool with get, set
Public Property PopulateOnDemand As Boolean

Valore della proprietà

true per popolare il nodo a cui viene applicato l'oggetto TreeNodeBinding in modo dinamico; in caso contrario, false. Il valore predefinito è false.

Esempio

Questa sezione contiene due esempi di codice. Nel primo esempio di codice viene illustrato come utilizzare la ShowCheckBox proprietà per specificare se viene visualizzata una casella di controllo per un nodo. Il secondo esempio di codice fornisce dati XML di esempio per il primo esempio di codice.

Nell'esempio seguente viene illustrato come utilizzare la ShowCheckBox proprietà per specificare se viene visualizzata una casella di controllo per un nodo. Affinché questo esempio funzioni correttamente, è 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">
<script runat="server">

  void Page_Load(Object sender, EventArgs e)
  {

    // Create a TreeNodeBinding object and set its 
    // properties.
    TreeNodeBinding binding = new TreeNodeBinding();
    binding.DataMember = "Section";
    binding.Depth = 2;
    binding.TextField = "Heading";

    // Set the PopulateOnDemand property of the
    // TreeNodeBinding object programmatically.
    binding.PopulateOnDemand = false;

    // Add the TreeNodeBinding object to the DataBindings
    // collection of the TreeView control.
    BookTreeView.DataBindings.Add(binding);

  }

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>TreeNodeBinding PopulateOnDemand Example</title>
</head>
<body>
    <form id="form1" runat="server">
    
      <h3>TreeNodeBinding PopulateOnDemand Example</h3>
    
      <asp:TreeView id="BookTreeView" 
        DataSourceID="BookXmlDataSource"
        ExpandDepth="2"  
        runat="server">
         
        <DataBindings>
          <asp:TreeNodeBinding DataMember="Book" 
            TextField="Title"/>
          <asp:TreeNodeBinding DataMember="Chapter" 
            TextField="Heading"
            PopulateOnDemand="False"/>
          <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">
<script runat="server">

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

    ' Create a TreeNodeBinding object and set its 
    ' properties.
    Dim binding As TreeNodeBinding = New TreeNodeBinding
    binding.DataMember = "Section"
    binding.Depth = 2
    binding.TextField = "Heading"

    ' Set the PopulateOnDemand property of the
    ' TreeNodeBinding object programmatically.
    binding.PopulateOnDemand = False

    ' Add the TreeNodeBinding object to the DataBindings
    ' collection of the TreeView control.
    BookTreeView.DataBindings.Add(binding)

  End Sub

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>TreeNodeBinding PopulateOnDemand Example</title>
</head>
<body>
    <form id="form1" runat="server">
    
      <h3>TreeNodeBinding PopulateOnDemand Example</h3>
    
      <asp:TreeView id="BookTreeView" 
        DataSourceID="BookXmlDataSource"
        ExpandDepth="2"  
        runat="server">
         
        <DataBindings>
          <asp:TreeNodeBinding DataMember="Book" 
            TextField="Title"/>
          <asp:TreeNodeBinding DataMember="Chapter" 
            TextField="Heading"
            PopulateOnDemand="False"/>
          <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 vengono forniti dati XML di esempio per l'esempio di codice precedente.

<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>
    <Appendix Heading="Appendix A">
    </Appendix>
</Book>

Commenti

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. Quando la PopulateOnDemand proprietà è impostata su true, i nodi figlio del nodo a cui viene applicato l'oggetto TreeNodeBinding vengono popolati in fase di esecuzione quando il nodo viene espanso.

Quando i data binding vengono creati impostando l'oggetto AutoGenerateDataBindingsTreeView del controllo su true, le associazioni create hanno la PopulateOnDemand proprietà impostata su true. I data binding creati in modo dichiarativo hanno la PopulateOnDemand proprietà impostata su false. L'uso della sintassi dichiarativa consente di controllare il comportamento dei singoli data binding.

Annotazioni

PopulateOnDemand A differenza della proprietà della TreeNode classe , la PopulateOnDemand proprietà non richiede la definizione di un metodo di gestione degli eventi per l'eventoTreeNodePopulate, se si usa un controllo origine dati, ad esempio XmlDataSource. Al contrario, il TreeView controllo genera in modo dinamico un metodo di gestione degli eventi usando le proprietà degli oggetti nell'insieme TreeNodeBindingDataBindings . È comunque possibile definire un metodo di gestione degli eventi per l'evento TreeNodePopulate , ma verrà chiamato dopo il metodo di gestione degli eventi per il TreeView controllo.

I browser supportati possono anche sfruttare il popolamento dei nodi lato client. Se abilitata, questo consente al TreeView controllo di popolare in modo dinamico un nodo nel client quando tale nodo viene espanso, impedendo la necessità di eseguire il postback al server. Per altre informazioni sul popolamento dei nodi sul lato client, vedere PopulateNodesFromClient.

Il valore di questa proprietà viene archiviato nello stato di visualizzazione.

Si applica a

Vedi anche