TreeNodeBinding.PopulateOnDemand Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá nebo nastaví hodnotu určující, zda uzel, na který TreeNodeBinding je objekt použit, je naplněn dynamicky.
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
Hodnota vlastnosti
truek naplnění uzlu, na který TreeNodeBinding se objekt používá dynamicky, jinak . false Výchozí hodnota je false.
Příklady
Tato část obsahuje dva příklady kódu. První příklad kódu ukazuje, jak pomocí ShowCheckBox vlastnosti určit, zda je zaškrtávací políčko zobrazeno pro uzel. Druhý příklad kódu poskytuje ukázková data XML pro první příklad kódu.
Následující příklad ukazuje, jak pomocí ShowCheckBox vlastnosti určit, zda je zaškrtávací políčko zobrazeno pro uzel. Aby tento příklad fungoval správně, musíte zkopírovat ukázková data XML zadanou po tomto příkladu kódu do souboru s názvem 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>
Následující příklad kódu poskytuje ukázková data XML pro předchozí příklad kódu.
<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>
Poznámky
Někdy není praktické staticky předdefinovat strukturu stromové struktury z důvodu velikosti dat nebo vlastního obsahu, který závisí na vstupu uživatele. Z tohoto důvodu TreeView ovládací prvek podporuje dynamický počet obyvatel uzlů. Pokud je vlastnost nastavena PopulateOnDemand na true, podřízené uzly uzlu, na který TreeNodeBinding se objekt použije, se naplní za běhu při rozbalení uzlu.
Při vytváření datových vazeb nastavením AutoGenerateDataBindingsTreeView ovládacího prvku na true, vazby, které jsou vytvořeny mají vlastnost nastavena PopulateOnDemand na true. Datové vazby, které jsou vytvořeny deklarativní mají PopulateOnDemand vlastnost nastavena na false. Použití deklarativní syntaxe umožňuje řídit chování jednotlivých datových vazeb.
Poznámka:
PopulateOnDemand Na rozdíl od vlastnosti TreeNode třídy PopulateOnDemand vlastnost nevyžaduje, aby byla pro TreeNodePopulate událost definována metoda zpracování událostí, pokud používáte ovládací prvek zdroje dat, například XmlDataSource. TreeView Místo toho ovládací prvek dynamicky generuje metodu zpracování událostí pomocí vlastností TreeNodeBinding objektů v kolekciDataBindings. Stále můžete definovat metodu zpracování událostí pro TreeNodePopulate událost, ale bude volána po metodě zpracování událostí pro TreeView ovládací prvek.
Podporované prohlížeče můžou také využívat základní soubor uzlů na straně klienta. Pokud je tato možnost povolená, umožňuje ovládacímu TreeView prvku dynamicky naplnit uzel v klientovi při rozbalení tohoto uzlu, což brání tomu, aby bylo nutné publikovat zpět na server. Další informace o populaci uzlů na straně klienta naleznete v tématu PopulateNodesFromClient.
Hodnota této vlastnosti je uložena ve stavu zobrazení.