TreeNodeBinding.PopulateOnDemand Właściwość

Definicja

Pobiera lub ustawia wartość wskazującą, czy węzeł, do którego TreeNodeBinding jest stosowany obiekt, jest wypełniany dynamicznie.

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

Wartość właściwości

true aby wypełnić węzeł, do którego TreeNodeBinding obiekt jest stosowany dynamicznie; w przeciwnym razie false. Wartość domyślna to false.

Przykłady

Ten rozdział zawiera dwa przykłady kodu. W pierwszym przykładzie kodu pokazano, jak za pomocą ShowCheckBox właściwości określić, czy dla węzła jest wyświetlane pole wyboru. Drugi przykład kodu zawiera przykładowe dane XML dla pierwszego przykładu kodu.

W poniższym przykładzie pokazano, jak za pomocą ShowCheckBox właściwości określić, czy dla węzła jest wyświetlane pole wyboru. Aby ten przykład działał poprawnie, należy skopiować przykładowe dane XML podane po tym przykładzie kodu do pliku o nazwie 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>

Poniższy przykład kodu zawiera przykładowe dane XML dla poprzedniego przykładu kodu.

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

Uwagi

Czasami nie jest to praktyczne, aby statycznie wstępnie zdefiniować strukturę drzewa ze względu na rozmiar danych lub zawartość niestandardową, która zależy od danych wejściowych użytkownika. W związku z tym kontrolka obsługuje dynamiczną populację TreeView węzłów. PopulateOnDemand Gdy właściwość jest ustawiona na truewartość , węzły podrzędne węzła, do którego TreeNodeBinding jest stosowany obiekt, są wypełniane w czasie wykonywania po rozwinięciu węzła.

Gdy powiązania danych są tworzone przez ustawienie AutoGenerateDataBindings kontrolki TreeViewtruena wartość , tworzone powiązania mają właściwość ustawioną PopulateOnDemand na true. Powiązania danych tworzone deklaratywnie mają właściwość ustawioną PopulateOnDemand na falsewartość . Użycie składni deklaratywnej umożliwia kontrolowanie zachowania poszczególnych powiązań danych.

Uwaga

PopulateOnDemand W przeciwieństwie do właściwości TreeNode klasyPopulateOnDemand, właściwość nie wymaga zdefiniowanej metody obsługi zdarzeń dla TreeNodePopulate zdarzenia, jeśli używasz kontroli źródła danych, takiej jak XmlDataSource. Zamiast tego kontrolka TreeView dynamicznie generuje metodę obsługi zdarzeń przy użyciu właściwości TreeNodeBinding obiektów w DataBindings kolekcji. Nadal można zdefiniować metodę obsługi zdarzeń dla TreeNodePopulate zdarzenia, jednak zostanie ona wywołana po metodzie obsługi zdarzeń dla kontrolki TreeView .

Obsługiwane przeglądarki mogą również korzystać z populacji węzłów po stronie klienta. Po włączeniu tej opcji kontrolka TreeView umożliwia dynamiczne wypełnianie węzła na kliencie po rozwinięciu tego węzła, co uniemożliwia powrót do serwera. Aby uzyskać więcej informacji na temat populacji węzłów po stronie klienta, zobacz PopulateNodesFromClient.

Wartość tej właściwości jest przechowywana w stanie widoku.

Dotyczy

Zobacz też