TreeNodeBinding.PopulateOnDemand Propriété

Définition

Obtient ou définit une valeur indiquant si le nœud auquel l'objet TreeNodeBinding est appliqué est rempli dynamiquement.

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

Valeur de propriété

true pour remplir le nœud auquel l'objet TreeNodeBinding est appliqué dynamiquement ; sinon, false. La valeur par défaut est false.

Exemples

Cette section contient deux exemples de code. Le premier exemple de code montre comment utiliser la ShowCheckBox propriété pour spécifier si une zone de case activée est affichée pour un nœud. Le deuxième exemple de code fournit des exemples de données XML pour le premier exemple de code.

L’exemple suivant montre comment utiliser la ShowCheckBox propriété pour spécifier si une zone de case activée est affichée pour un nœud. Pour que cet exemple fonctionne correctement, vous devez copier les exemples de données XML, fournis après cet exemple de code, dans un fichier nommé 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>

L’exemple de code suivant fournit des exemples de données XML pour l’exemple de code précédent.

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

Remarques

Parfois, il n’est pas pratique de prédéfinir statiquement l’arborescence en raison de la taille des données ou du contenu personnalisé qui dépend de l’entrée de l’utilisateur. Pour cette raison, le contrôle prend en charge l’remplissage TreeView dynamique des nœuds. Lorsque la propriété a la PopulateOnDemandtruevaleur , les nœuds enfants du nœud auquel l’objet TreeNodeBinding est appliqué sont renseignés au moment de l’exécution lorsque le nœud est développé.

Lorsque des liaisons de données sont créées en définissant le AutoGenerateDataBindingsTreeView du contrôle sur true, les liaisons créées ont la PopulateOnDemand propriété définie sur true. Les liaisons de données créées de manière déclarative ont la PopulateOnDemand propriété définie sur false. L’utilisation de la syntaxe déclarative vous permet de contrôler le comportement des liaisons de données individuelles.

Notes

Contrairement à la PopulateOnDemand propriété de la TreeNode classe , la PopulateOnDemand propriété ne nécessite pas la définition d’une méthode de gestion des événements pour l’événement TreeNodePopulate , si vous utilisez un contrôle de source de données, tel que XmlDataSource. Au lieu de cela, le TreeView contrôle génère dynamiquement une méthode de gestion des événements à l’aide des propriétés des TreeNodeBinding objets de la DataBindings collection. Vous pouvez toujours définir une méthode de gestion des événements pour l’événement TreeNodePopulate . Toutefois, elle sera appelée après la méthode de gestion des événements pour le TreeView contrôle.

Les navigateurs pris en charge peuvent également tirer parti de la population de nœuds côté client. Lorsque cette option est activée, le TreeView contrôle peut remplir dynamiquement un nœud sur le client lorsque ce nœud est développé, ce qui évite d’avoir à publier sur le serveur. Pour plus d’informations sur la population de nœuds côté client, consultez PopulateNodesFromClient.

La valeur de cette propriété est stockée dans l’état d’affichage.

S’applique à

Voir aussi