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.
Значение этого свойства хранится в состоянии представления.