TreeNodeBinding.PopulateOnDemand Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Obtém ou define um valor que indica se o nó ao qual o objeto TreeNodeBinding é aplicado é preenchido dinamicamente.
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
Valor da propriedade
true
para preencher o nó ao qual o TreeNodeBinding objeto é aplicado dinamicamente; caso contrário, false
. O padrão é false
.
Exemplos
Esta seção contém dois exemplos de código. O primeiro exemplo de código demonstra como usar a ShowCheckBox propriedade para especificar se uma caixa de marcar é exibida para um nó. O segundo exemplo de código fornece dados XML de exemplo para o primeiro exemplo de código.
O exemplo a seguir demonstra como usar a ShowCheckBox propriedade para especificar se uma caixa de marcar é exibida para um nó. Para que este exemplo funcione corretamente, você deve copiar os dados XML de exemplo, fornecidos após este exemplo de código, para um arquivo chamado 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>
O exemplo de código a seguir fornece dados XML de exemplo para o exemplo de código anterior.
<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>
Comentários
Às vezes, não é prático predefinir estaticamente a estrutura da árvore devido ao tamanho dos dados ou conteúdo personalizado que depende da entrada do usuário. Por isso, o controle dá suporte à TreeView população de nós dinâmicos. Quando a PopulateOnDemand propriedade é definida como true
, os nós filho do nó ao qual o TreeNodeBinding objeto é aplicado são preenchidos em tempo de execução quando o nó é expandido.
Quando as associações de dados são criadas definindo o AutoGenerateDataBindingsTreeView do controle como true
, as associações criadas têm a PopulateOnDemand propriedade definida como true
. As associações de dados criadas declarativamente têm a PopulateOnDemand propriedade definida como false
. O uso da sintaxe declarativa permite controlar o comportamento de associações de dados individuais.
Observação
Ao contrário da PopulateOnDemand propriedade da TreeNode classe , a PopulateOnDemand propriedade não exige que um método de manipulação de eventos seja definido para o TreeNodePopulate evento, se você estiver usando um controle de fonte de dados, como XmlDataSource. Em vez disso, o TreeView controle gera dinamicamente um método de manipulação de eventos usando as propriedades dos TreeNodeBinding objetos na DataBindings coleção. Você ainda pode definir um método de manipulação de eventos para o TreeNodePopulate evento; no entanto, ele será chamado após o método de tratamento de eventos para o TreeView controle.
Os navegadores com suporte também podem aproveitar a população de nós do lado do cliente. Quando habilitado, isso permite que o TreeView controle preencha um nó dinamicamente no cliente quando esse nó é expandido, impedindo a necessidade de postar de volta no servidor. Para obter mais informações sobre a população de nós do lado do cliente, consulte PopulateNodesFromClient.
O valor dessa propriedade é armazenado no estado de exibição.