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

属性值

如果动态填充 TreeNodeBinding 对象应用到的节点,则为 true;否则为 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 时,将在运行时填充应用对象的节点的子节点。

通过将 控件的 TreeView 设置为 trueAutoGenerateDataBindings 来创建数据绑定时,创建的绑定的 PopulateOnDemand 属性设置为 true。 以声明方式创建的数据绑定的 PopulateOnDemand 属性设置为 false。 使用声明性语法可以控制单个数据绑定的行为。

注意

PopulateOnDemand与 类的 TreeNode 属性不同, PopulateOnDemand 如果使用的是数据源控件(如 XmlDataSource),则 属性不需要为TreeNodePopulate事件定义事件处理方法。 相反,控件TreeView使用集合中DataBindings对象的属性TreeNodeBinding动态生成事件处理方法。 您仍然可以为 TreeNodePopulate 事件定义事件处理方法;但是,它将在控件的事件处理方法 TreeView 之后调用。

支持的浏览器还可以利用客户端节点填充。 启用后,这允许控件在 TreeView 扩展该节点时动态填充客户端上的节点,从而避免需要回发到服务器。 有关客户端节点填充的详细信息,请参阅 PopulateNodesFromClient

此属性的值存储在视图状态中。

适用于

另请参阅