Condividi tramite


TreeNodeBinding.PopulateOnDemand Proprietà

Definizione

Ottiene o imposta un valore che indica se il nodo a cui è applicato l'oggetto TreeNodeBinding viene compilato 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 compilare in modo dinamico il nodo a cui è applicato l'oggetto TreeNodeBinding; in caso contrario, false. Il valore predefinito è false.

Esempio

In questa sezione sono riportati 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. Nel secondo esempio di codice vengono forniti 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. 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">
<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 AutoGenerateDataBindings del controllo su true, le associazioni create hanno la PopulateOnDemand proprietà impostata su trueTreeView . 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.

Nota

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. Il controllo genera invece TreeView 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 di nodi lato client. Se abilitata, questo consente al TreeView controllo di popolare dinamicamente un nodo nel client quando tale nodo viene espanso, impedendo la necessità di eseguire il postback al server. Per altre informazioni sul popolamento di nodi lato client, vedere PopulateNodesFromClient.

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

Si applica a

Vedi anche