TreeNodeBinding.PopulateOnDemand Свойство

Определение

Получает или задает значение, показывающее, заполняется ли динамически узел, к которому применяется объект TreeNodeBinding.

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

Значение свойства

Значение true, если узел, к которому применяется объект TreeNodeBinding, заполняется динамически; в противном случае — значение false. Значение по умолчанию — false.

Примеры

Этот раздел содержит два примера кода. В первом примере кода показано, как использовать ShowCheckBox свойство , чтобы указать, отображается ли поле проверка для узла. Второй пример кода содержит пример XML-данных для первого примера кода.

В следующем примере показано, как использовать ShowCheckBox свойство , чтобы указать, отображается ли поле проверка для узла. Чтобы этот пример работал правильно, необходимо скопировать пример XML-данных, предоставленный после этого примера кода, в файл с именем 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>

В следующем примере кода приведен пример XML-данных для предыдущего примера кода.

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

Комментарии

Иногда нецелесообразно статически предопределить структуру дерева из-за размера данных или пользовательского содержимого, которое зависит от введенных пользователем данных. По этой причине элемент управления поддерживает динамическое заполнение TreeView узлов. Если свойству PopulateOnDemand присвоено значение true, дочерние узлы узла, к которому TreeNodeBinding применяется объект, заполняются во время выполнения при развертывании узла.

Если привязки данных создаются путем установки для AutoGenerateDataBindingsTreeView элемента управления значения true, создаваемые привязки имеют PopulateOnDemand значение true. Для привязок данных, созданных декларативно, PopulateOnDemand свойство имеет значение false. Декларативный синтаксис позволяет управлять поведением отдельных привязок данных.

Примечание

PopulateOnDemand В отличие от свойства TreeNode класса , PopulateOnDemand свойство не требует определения метода обработки событий для TreeNodePopulate события, если используется элемент управления источником данных, например XmlDataSource. Вместо этого TreeView элемент управления динамически создает метод обработки событий, используя свойства TreeNodeBinding объектов в DataBindings коллекции. Вы по-прежнему можете определить метод обработки событий для TreeNodePopulate события, однако он будет вызываться после метода обработки событий для TreeView элемента управления .

Поддерживаемые браузеры также могут воспользоваться преимуществами заполнения узлов на стороне клиента. Если этот параметр включен, элемент управления может TreeView динамически заполнять узел на клиенте при развертывании этого узла, предотвращая необходимость обратной отправки на сервер. Дополнительные сведения о заполнения узла на стороне клиента см. в разделе PopulateNodesFromClient.

Значение этого свойства хранится в состоянии представления.

Применяется к

См. также раздел