TreeNodeBinding Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Define a relação entre um elemento de dados e o nó ao qual está ligado num TreeView controlo.
public ref class TreeNodeBinding sealed : ICloneable, System::Web::UI::IDataSourceViewSchemaAccessor, System::Web::UI::IStateManager
public sealed class TreeNodeBinding : ICloneable, System.Web.UI.IDataSourceViewSchemaAccessor, System.Web.UI.IStateManager
type TreeNodeBinding = class
interface IStateManager
interface ICloneable
interface IDataSourceViewSchemaAccessor
Public NotInheritable Class TreeNodeBinding
Implements ICloneable, IDataSourceViewSchemaAccessor, IStateManager
- Herança
-
TreeNodeBinding
- Implementações
Exemplos
A tabela seguinte mostra alguns exemplos de declarações de ligação de nós em árvore.
| Exemplo de encadernação | Description |
|---|---|
<asp:TreeNodeBinding TextField="Title" ValueField= "ID"/> |
Liga as Text propriedades e Value de todos os nós da árvore aos Title campos e ID da fonte de dados, respetivamente. Todos os nós usam esta declaração de ligação de nós em árvore porque as DataMember propriedades e Depth não estão definidas. |
<asp:TreeNodeBinding DataMember= "Book" TextField= "Title" ValueField= "ID"/> |
Liga as Text propriedades e Value de todos os nós da árvore aos Title campos e ID do Book item de dados na fonte de dados, respetivamente. |
<asp:TreeNodeBinding Depth="2" TextField= "Title" ValueField= "ID"/> |
Liga as Text propriedades e Value de todos os nós com profundidade 2 na árvore aos Title campos e ID do item de dados na fonte de dados, respetivamente. |
<asp:TreeNodeBinding DataMember="Book" Depth= "2" TextField= "Title" ValueField= "ID" ImageUrl= "Image.jpg"> |
Liga as Text propriedades e Value de todos os nós com profundidade 2 na árvore aos Title campos e ID do Book item de dados na fonte de dados, respetivamente. Também vincula a ImageUrl propriedade dos nós a um valor estático. |
Esta secção contém três exemplos de código. O primeiro exemplo de código demonstra como usar TreeNodeBinding objetos declarativamente para definir a relação entre um nó e um elemento de dados. O segundo exemplo de código demonstra como usar TreeNodeBinding objetos programaticamente para definir a relação entre um nó e um elemento de dados. O terceiro exemplo de código fornece dados XML de exemplo para o primeiro e segundo exemplos de código.
O exemplo de código seguinte demonstra como usar TreeNodeBinding objetos de forma declarativa para definir a relação entre um nó e um elemento de dados. Para que este exemplo funcione corretamente, deve copiar os dados XML de amostra, fornecidos após este exemplo de código, para um ficheiro 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">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>TreeView XML Data Binding Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>TreeView XML Data Binding Example</h3>
<asp:TreeView id="BookTreeView"
DataSourceID="BookXmlDataSource"
runat="server">
<DataBindings>
<asp:TreeNodeBinding DataMember="Book" TextField="Title"/>
<asp:TreeNodeBinding DataMember="Chapter" TextField="Heading"/>
<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">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>TreeView XML Data Binding Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>TreeView XML Data Binding Example</h3>
<asp:TreeView id="BookTreeView"
DataSourceID="BookXmlDataSource"
runat="server">
<DataBindings>
<asp:TreeNodeBinding DataMember="Book" TextField="Title"/>
<asp:TreeNodeBinding DataMember="Chapter" TextField="Heading"/>
<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 seguinte demonstra como usar TreeNodeBinding objetos programaticamente para definir a relação entre um nó e um elemento de dados. Para que este exemplo funcione corretamente, deve copiar os dados XML de exemplo fornecidos no próximo exemplo de código para um ficheiro 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 new TreeView control.
TreeView NewTree = new TreeView();
// Set the properties of the TreeView control.
NewTree.ID = "BookTreeView";
NewTree.DataSourceID = "BookXmlDataSource";
// Create the tree node binding relationship.
// Create the root node binding.
TreeNodeBinding RootBinding = new TreeNodeBinding();
RootBinding.DataMember = "Book";
RootBinding.TextField = "Title";
// Create the parent node binding.
TreeNodeBinding ParentBinding = new TreeNodeBinding();
ParentBinding.DataMember = "Chapter";
ParentBinding.TextField = "Heading";
// Create the leaf node binding.
TreeNodeBinding LeafBinding = new TreeNodeBinding();
LeafBinding.DataMember = "Section";
LeafBinding.TextField = "Heading";
// Add bindings to the DataBindings collection.
NewTree.DataBindings.Add(RootBinding);
NewTree.DataBindings.Add(ParentBinding);
NewTree.DataBindings.Add(LeafBinding);
// Manually register the event handler for the SelectedNodeChanged event.
NewTree.SelectedNodeChanged += new EventHandler(this.Node_Change);
// Add the TreeView control to the Controls collection of the PlaceHolder control.
ControlPlaceHolder.Controls.Add(NewTree);
}
void Node_Change(Object sender, EventArgs e)
{
// Retrieve the TreeView control from the Controls collection of the PlaceHolder control.
TreeView LocalTree = (TreeView)ControlPlaceHolder.FindControl("BookTreeView");
// Display the selected node.
Message.Text = "You selected: " + LocalTree.SelectedNode.Text;
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>TreeView Constructor Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>TreeView Constructor Example</h3>
<asp:PlaceHolder id="ControlPlaceHolder" runat="server">
</asp:PlaceHolder>
<asp:XmlDataSource id="BookXmlDataSource"
DataFile="Book.xml"
runat="server">
</asp:XmlDataSource>
<br /><br />
<asp:Label id="Message" runat="server"/>
</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 new TreeView control.
Dim NewTree As New TreeView
' Set the properties of the TreeView control.
NewTree.ID = "BookTreeView"
NewTree.DataSourceID = "BookXmlDataSource"
' Create the tree node binding relationship.
' Create the root node binding.
Dim RootBinding As New TreeNodeBinding
RootBinding.DataMember = "Book"
RootBinding.TextField = "Title"
' Create the parent node binding.
Dim ParentBinding As New TreeNodeBinding
ParentBinding.DataMember = "Chapter"
ParentBinding.TextField = "Heading"
' Create the leaf node binding.
Dim LeafBinding As New TreeNodeBinding
LeafBinding.DataMember = "Section"
LeafBinding.TextField = "Heading"
' Add bindings to the DataBindings collection.
NewTree.DataBindings.Add(RootBinding)
NewTree.DataBindings.Add(ParentBinding)
NewTree.DataBindings.Add(LeafBinding)
' Manually register the event handler for the SelectedNodeChanged event.
AddHandler NewTree.SelectedNodeChanged, AddressOf Node_Change
' Add the TreeView control to the Controls collection of the PlaceHolder control.
ControlPlaceHolder.Controls.Add(NewTree)
End Sub
Sub Node_Change(ByVal sender As Object, ByVal e As EventArgs)
' Retrieve the TreeView control from the Controls collection of the PlaceHolder control.
Dim LocalTree As TreeView = CType(ControlPlaceHolder.FindControl("BookTreeView"), TreeView)
' Display the selected node.
Message.Text = "You selected: " & LocalTree.SelectedNode.Text
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>TreeView Constructor Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>TreeView Constructor Example</h3>
<asp:PlaceHolder id="ControlPlaceHolder" runat="server">
</asp:PlaceHolder>
<asp:XmlDataSource id="BookXmlDataSource"
DataFile="Book.xml"
runat="server">
</asp:XmlDataSource>
<br /><br />
<asp:Label id="Message" runat="server"/>
</form>
</body>
</html>
O exemplo de código seguinte fornece dados XML de exemplo para os exemplos de código anteriores.
<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>
</Book>
Observações
Quando o TreeView controlo está ligado a uma fonte de dados onde cada elemento contém múltiplos campos (como um elemento XML com vários atributos), um nó exibe o valor que é devolvido pelo ToString método do elemento de dados, por defeito. No caso de um elemento XML, o nó apresenta o nome do elemento, que mostra a estrutura subjacente da árvore, mas não é muito útil de outra forma. Pode atribuir as propriedades de um nó a um campo específico especificando ligações de nós em árvore. Um objeto define a relação entre cada elemento de dados e o nó ao qual está a TreeNodeBinding ligar-se.
O TreeView controlo armazena os seus TreeNodeBinding objetos na DataBindings propriedade e aplica as ligações à fonte de dados para criar uma relação um-para-um entre a hierarquia da árvore e a hierarquia da fonte de dados. Para cada elemento de dados na fonte de dados, o controlo TreeView tenta associar o elemento de dados a um TreeNodeBinding objeto para criar o objeto correspondente TreeNode .
Ao criar um TreeNodeBinding objeto, deve especificar os critérios de encadernação. Os critérios indicam quando um elemento de dados deve ser associado a um nó. Pode especificar a Depth propriedade ou DataMember ambas. Há um ligeiro ganho de desempenho ao especificar ambos. A profundidade de um nó especifica o nível do nó que é limitado. Por exemplo, a seguinte TreeNodeBinding declaração vincula os Name campos e ID da fonte de dados às Text propriedades e, Value respetivamente, de todos os nós com profundidade 0:
<asp:TreeNodeBinding Depth="0" TextField="Name" ValueField="ID">
Um membro de dados especifica o tipo do elemento de dados na fonte de dados subjacente, mas pode representar informação diferente dependendo da fonte de dados. Cada elemento de dados numa fonte de dados hierárquica (representada por uma System.Web.UI.IHierarchyData interface) expõe uma IHierarchyData.Type propriedade que especifica o tipo do item de dados. Por exemplo, o membro de dados de um elemento XML especifica o nome do elemento. Quando uma fonte de dados contém vários tipos de itens de dados, o membro de dados especifica qual o tipo de elemento de dados a utilizar. A seguinte TreeNodeBinding declaração vincula os <Book> elementos de um XmlDataSource controlo a todos os nós da árvore, independentemente da localização na hierarquia:
<asp:TreeNodeBinding DataMember="Book" TextField="Title" ValueField= "ISBN">
Uma vez estabelecido o critério de ligação, pode então vincular uma propriedade de um TreeNode objeto que pode ser atribuída a um valor. Pode atribuir a um campo de um elemento de dados ou a um valor estático. Quando atribuídos a um valor estático, todos os TreeNode objetos a que o TreeNodeBinding objeto é aplicado partilham o mesmo valor.
Note
Pode sobrescrever seletivamente uma propriedade limitada num TreeNode objeto definindo a propriedade correspondente diretamente no nó.
A tabela seguinte lista as propriedades da TreeNodeBinding classe que permitem associar uma propriedade do TreeNode objeto a um campo de um elemento de dados.
| Property | Description |
|---|---|
| ImageUrlField | O campo a ligar à ImageUrl propriedade de um TreeNode objeto. |
| ImageToolTipField | O campo a ligar à ImageToolTip propriedade de um TreeNode objeto. |
| NavigateUrlField | O campo a ligar à NavigateUrl propriedade de um TreeNode objeto. |
| TextField | O campo a ligar à Text propriedade de um TreeNode objeto. |
| ToolTipField | O campo a ligar à ToolTip propriedade de um TreeNode objeto. |
| ValueField | O campo a ligar à Value propriedade de um TreeNode objeto. |
A tabela seguinte lista as propriedades da TreeNodeBinding classe que permitem atribuir uma propriedade do TreeNode objeto a um valor estático.
| Property | Description |
|---|---|
| ImageUrl | O valor estático para se ligar à ImageUrl propriedade de um TreeNode objeto. |
| ImageToolTip | O valor estático para se ligar à ImageToolTip propriedade de um TreeNode objeto. |
| NavigateUrl | O valor estático para se ligar à NavigateUrl propriedade de um TreeNode objeto. |
| PopulateOnDemand | O valor estático para se ligar à PopulateOnDemand propriedade de um TreeNode objeto. |
| SelectAction | O valor estático para se ligar à SelectAction propriedade de um TreeNode objeto. |
| ShowCheckBox | O valor estático para se ligar à ShowCheckBox propriedade de um TreeNode objeto. |
| Target | O valor estático para se ligar à Target propriedade de um TreeNode objeto. |
| Text | O valor estático para se ligar à Text propriedade de um TreeNode objeto. |
| ToolTip | O valor estático para se ligar à ToolTip propriedade de um TreeNode objeto. |
| Value | O valor estático para se ligar à Value propriedade de um TreeNode objeto. |
Se objetos em conflito TreeNodeBinding forem definidos, o controlo TreeView aplica as ligações de nós da árvore na seguinte ordem de precedência:
O TreeNodeBinding objeto que define e corresponde tanto a uma profundidade como a um elemento de dados.
O TreeNodeBinding objeto que define e corresponde apenas ao membro de dados.
O TreeNodeBinding objeto que define e corresponde apenas à profundidade.
O TreeNodeBinding objeto que não define nem a profundidade nem o elemento de dados. (Este tipo de ligação de nós em árvore é aplicado a todos os nós da árvore.)
O TreeNodeBinding objeto que não tem correspondência na fonte de dados. Neste caso, o valor devolvido pelo
ToStringmétodo do elemento de dados é então ligado às Text propriedades e Value dos nós aos quais o TreeNodeBinding objeto é aplicado.
A TreeNodeBinding classe também permite formatar o texto que é exibido num nó definindo a FormatString propriedade.
Construtores
| Name | Description |
|---|---|
| TreeNodeBinding() |
Inicializa uma nova instância da TreeNodeBinding classe. |
Propriedades
| Name | Description |
|---|---|
| DataMember |
Obtém ou define o valor para corresponder a uma Type propriedade de um elemento de dados para determinar se deve aplicar a ligação ao nó da árvore. |
| Depth |
Obtém ou define a profundidade do nó a que o TreeNodeBinding objeto é aplicado. |
| FormatString |
Obtém ou define a cadeia que especifica o formato de exibição do texto de um nó ao qual o TreeNodeBinding objeto é aplicado. |
| ImageToolTip |
Recebe ou define o texto ToolTip para a imagem que é exibida ao lado de um nó ao qual o TreeNodeBinding objeto é aplicado. |
| ImageToolTipField |
Obtém ou define o nome do campo a partir da fonte de dados para se associar à ImageToolTip propriedade de um TreeNode objeto ao qual o TreeNodeBinding objeto é aplicado. |
| ImageUrl |
Obtém ou define a URL para uma imagem que é exibida ao lado de um nó ao qual o TreeNodeBinding objeto é aplicado. |
| ImageUrlField |
Obtém ou define o nome do campo a partir da fonte de dados para se associar à ImageUrl propriedade de um TreeNode objeto ao qual o TreeNodeBinding objeto é aplicado. |
| NavigateUrl |
Obtém ou define a URL para ligar quando um nó ao qual o TreeNodeBinding objeto é aplicado é clicado. |
| NavigateUrlField |
Obtém ou define o nome do campo a partir da fonte de dados para se associar à NavigateUrl propriedade de um TreeNode objeto ao qual o TreeNodeBinding objeto é aplicado. |
| PopulateOnDemand |
Recebe ou define um valor que indica se o nó ao qual o TreeNodeBinding objeto é aplicado é povoado dinamicamente. |
| SelectAction |
Obtém ou define o(s) evento(s) a levantar quando um nó ao qual o TreeNodeBinding objeto é aplicado é selecionado. |
| ShowCheckBox |
Recebe ou define um valor que indica se uma caixa de seleção é exibida ao lado de um nó ao qual o TreeNodeBinding objeto é aplicado. |
| Target |
Obtém ou define a janela ou frame de destino onde exibir o conteúdo da página Web associado a um nó ao qual o TreeNodeBinding objeto é aplicado. |
| TargetField |
Obtém ou define o nome do campo a partir da fonte de dados para se associar à Target propriedade de um TreeNode objeto ao qual o TreeNodeBinding objeto é aplicado. |
| Text |
Obtém ou define o texto que é apresentado para o nó ao qual o TreeNodeBinding objeto é aplicado. |
| TextField |
Obtém ou define o nome do campo a partir da fonte de dados para se associar à Text propriedade de um TreeNode objeto ao qual o TreeNodeBinding objeto é aplicado. |
| ToolTip |
Obtém ou define o texto ToolTip para um nó ao qual o TreeNodeBinding objeto é aplicado. |
| ToolTipField |
Obtém ou define o nome do campo a partir da fonte de dados para se associar à ToolTip propriedade de um TreeNode objeto ao qual o TreeNodeBinding objeto é aplicado. |
| Value |
Recebe ou define um valor apresentado que não é exibido, mas é usado para armazenar quaisquer dados adicionais sobre um nó ao qual o TreeNodeBinding objeto é aplicado, como dados usados para tratar eventos de postback. |
| ValueField |
Obtém ou define o nome do campo a partir da fonte de dados para se associar à Value propriedade de um TreeNode objeto ao qual o TreeNodeBinding objeto é aplicado. |
Métodos
| Name | Description |
|---|---|
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| GetHashCode() |
Serve como função de hash predefinida. (Herdado de Object) |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| ToString() |
Devolve a DataMember propriedade. |
Implementações de Interface Explícita
| Name | Description |
|---|---|
| ICloneable.Clone() |
Cria uma cópia do TreeNodeBinding objeto. |
| IDataSourceViewSchemaAccessor.DataSourceViewSchema |
Para uma descrição deste elemento, veja DataSourceViewSchema. |
| IStateManager.IsTrackingViewState |
Para uma descrição deste elemento, veja IsTrackingViewState. |
| IStateManager.LoadViewState(Object) |
Carrega o estado de visualização previamente guardado para o nó. |
| IStateManager.SaveViewState() |
Guarda as alterações de estado da vista num objeto. |
| IStateManager.TrackViewState() |
Instrui o TreeNode objeto a acompanhar alterações ao seu estado de visualização. |
Aplica-se a
Ver também
- TreeView
- TreeNode
- TreeNodeBindingCollection
- XmlDataSource
- DataBindings
- DataMember
- Depth
- FormatString
- ImageUrl
- ImageUrlField
- ImageToolTip
- ImageToolTipField
- NavigateUrl
- NavigateUrl
- NavigateUrlField
- PopulateOnDemand
- SelectAction
- ShowCheckBox
- Target
- Text
- Text
- TextField
- ToolTip
- ToolTip
- ToolTipField
- Value
- Value
- ValueField