Compartilhar via


TreeNodeBinding.PopulateOnDemand Propriedade

Definição

Obtém ou define um valor que indica se o nó ao qual o objeto TreeNodeBinding é aplicado é preenchido dinamicamente.

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

Valor da propriedade

true para preencher o nó ao qual o TreeNodeBinding objeto é aplicado dinamicamente; caso contrário, false. O padrão é false.

Exemplos

Esta seção contém dois exemplos de código. O primeiro exemplo de código demonstra como usar a ShowCheckBox propriedade para especificar se uma caixa de marcar é exibida para um nó. O segundo exemplo de código fornece dados XML de exemplo para o primeiro exemplo de código.

O exemplo a seguir demonstra como usar a ShowCheckBox propriedade para especificar se uma caixa de marcar é exibida para um nó. Para que este exemplo funcione corretamente, você deve copiar os dados XML de exemplo, fornecidos após este exemplo de código, para um arquivo chamado 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>

O exemplo de código a seguir fornece dados XML de exemplo para o exemplo de código anterior.

<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>  

Comentários

Às vezes, não é prático predefinir estaticamente a estrutura da árvore devido ao tamanho dos dados ou conteúdo personalizado que depende da entrada do usuário. Por isso, o controle dá suporte à TreeView população de nós dinâmicos. Quando a PopulateOnDemand propriedade é definida como true, os nós filho do nó ao qual o TreeNodeBinding objeto é aplicado são preenchidos em tempo de execução quando o nó é expandido.

Quando as associações de dados são criadas definindo o AutoGenerateDataBindingsTreeView do controle como true, as associações criadas têm a PopulateOnDemand propriedade definida como true. As associações de dados criadas declarativamente têm a PopulateOnDemand propriedade definida como false. O uso da sintaxe declarativa permite controlar o comportamento de associações de dados individuais.

Observação

Ao contrário da PopulateOnDemand propriedade da TreeNode classe , a PopulateOnDemand propriedade não exige que um método de manipulação de eventos seja definido para o TreeNodePopulate evento, se você estiver usando um controle de fonte de dados, como XmlDataSource. Em vez disso, o TreeView controle gera dinamicamente um método de manipulação de eventos usando as propriedades dos TreeNodeBinding objetos na DataBindings coleção. Você ainda pode definir um método de manipulação de eventos para o TreeNodePopulate evento; no entanto, ele será chamado após o método de tratamento de eventos para o TreeView controle.

Os navegadores com suporte também podem aproveitar a população de nós do lado do cliente. Quando habilitado, isso permite que o TreeView controle preencha um nó dinamicamente no cliente quando esse nó é expandido, impedindo a necessidade de postar de volta no servidor. Para obter mais informações sobre a população de nós do lado do cliente, consulte PopulateNodesFromClient.

O valor dessa propriedade é armazenado no estado de exibição.

Aplica-se a

Confira também