TreeNodeBinding.PopulateOnDemand Propiedad

Definición

Obtiene o establece un valor que indica si el nodo al que se aplica el objeto TreeNodeBinding se rellena de forma dinámica.

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

true para rellenar de forma dinámica el nodo al que se aplica el objeto TreeNodeBinding; en caso contrario, false. De manera predeterminada, es false.

Ejemplos

Esta sección contiene dos ejemplos de código. En el primer ejemplo de código se muestra cómo usar la ShowCheckBox propiedad para especificar si se muestra una casilla para un nodo. En el segundo ejemplo de código se proporcionan datos XML de ejemplo para el primer ejemplo de código.

En el ejemplo siguiente se muestra cómo usar la ShowCheckBox propiedad para especificar si se muestra una casilla para un nodo. Para que este ejemplo funcione correctamente, debe copiar los datos XML de ejemplo, proporcionados después de este ejemplo de código, en un archivo denominado 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>

En el ejemplo de código siguiente se proporcionan datos XML de ejemplo para el ejemplo 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>  

Comentarios

A veces, no es práctico predefinir estáticamente la estructura de árbol debido al tamaño de los datos o al contenido personalizado que depende de la entrada del usuario. Por este motivo, el control admite el TreeView rellenado dinámico de nodos. Cuando la PopulateOnDemand propiedad se establece trueen , los nodos secundarios del nodo al que se aplica el TreeNodeBinding objeto se rellenan en tiempo de ejecución cuando se expande el nodo.

Cuando los enlaces de datos se crean estableciendo el AutoGenerateDataBindings del TreeView control trueen , los enlaces creados tienen la PopulateOnDemand propiedad establecida en true. Los enlaces de datos creados mediante declaración tienen la PopulateOnDemand propiedad establecida en false. El uso de la sintaxis declarativa permite controlar el comportamiento de los enlaces de datos individuales.

Nota

A diferencia de la PopulateOnDemand propiedad de la TreeNode clase , la PopulateOnDemand propiedad no requiere que se defina un método de control de eventos para el TreeNodePopulate evento, si usa un control de origen de datos, como XmlDataSource. En su lugar, el TreeView control genera dinámicamente un método de control de eventos mediante las propiedades de los TreeNodeBinding objetos de la DataBindings colección. Todavía puede definir un método de control de eventos para el TreeNodePopulate evento; sin embargo, se llamará después del método de control de eventos para el TreeView control.

Los exploradores compatibles también pueden aprovechar el rellenado de nodos del lado cliente. Cuando se habilita, esto permite que el TreeView control rellene dinámicamente un nodo en el cliente cuando se expanda ese nodo, lo que impide la necesidad de volver a publicar en el servidor. Para obtener más información sobre el rellenado de nodos del lado cliente, vea PopulateNodesFromClient.

El valor de esta propiedad se almacena en estado de vista.

Se aplica a

Consulte también