Partilhar via


TreeNodeBinding Classe

Definição

Define a relação entre um item de dados e o nó que ele está associando a um controle TreeView.

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 a seguir mostra alguns exemplos de declarações de associação de nó de árvore.

Associação de exemplo Descrição
<asp:TreeNodeBinding TextField="Title" ValueField= "ID"/> Associa as Text propriedades e Value de todos os nós na árvore aos Title campos e ID da fonte de dados, respectivamente. Todos os nós usam essa declaração de associação de nó de árvore porque as DataMember propriedades e Depth não estão definidas.
<asp:TreeNodeBinding DataMember= "Book" TextField= "Title" ValueField= "ID"/> Associa as Text propriedades e Value de todos os nós na árvore aos Title campos e ID do Book item de dados na fonte de dados, respectivamente.
<asp:TreeNodeBinding Depth="2" TextField= "Title" ValueField= "ID"/> Associa as Text propriedades e Value de todos os nós com uma profundidade de 2 na árvore aos Title campos e ID do item de dados na fonte de dados, respectivamente.
<asp:TreeNodeBinding DataMember="Book" Depth= "2" TextField= "Title" ValueField= "ID" ImageUrl= "Image.jpg"> Associa as Text propriedades e Value de todos os nós com uma profundidade de 2 na árvore aos Title campos e ID do Book item de dados na fonte de dados, respectivamente. Também associa a ImageUrl propriedade dos nós a um valor estático.

Esta seçã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 item de dados. O segundo exemplo de código demonstra como usar TreeNodeBinding objetos programaticamente para definir a relação entre um nó e um item de dados. O terceiro exemplo de código fornece dados XML de exemplo para o primeiro e o segundo exemplos de código.

O exemplo de código a seguir demonstra como usar TreeNodeBinding objetos declarativamente para definir a relação entre um nó e um item de dados. 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">
<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 a seguir demonstra como usar TreeNodeBinding objetos programaticamente para definir a relação entre um nó e um item de dados. Para que este exemplo funcione corretamente, você deve copiar os dados XML de exemplo fornecidos no próximo 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 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 a seguir 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>  

Comentários

Quando o TreeView controle é associado a uma fonte de dados em que cada item de dados contém vários campos (como um elemento XML com vários atributos), um nó exibe o valor retornado pelo ToString método do item de dados, por padrão. No caso de um elemento XML, o nó exibe o nome do elemento, que mostra a estrutura subjacente da árvore, mas não é muito útil de outra forma. Você pode associar as propriedades de um nó a um campo específico especificando associações de nó de árvore. Um TreeNodeBinding objeto define a relação entre cada item de dados e o nó ao qual ele está se associando.

O TreeView controle armazena seus TreeNodeBinding objetos na DataBindings propriedade e aplica as associações à fonte de dados para criar uma relação um-para-um entre a hierarquia de árvore e a hierarquia da fonte de dados. Para cada item de dados na fonte de dados, o TreeView controle tenta corresponder o item de dados a um TreeNodeBinding objeto para criar o objeto correspondente TreeNode .

Ao criar um TreeNodeBinding objeto, você deve especificar os critérios para associação. Os critérios indicam quando um item de dados deve ser associado a um nó. Você pode especificar a Depth propriedade ou DataMember ou ambas as propriedades. Há um pequeno ganho de desempenho especificando ambos. Uma profundidade de nó especifica o nível de nó que é associado. Por exemplo, a declaração a seguir TreeNodeBinding associa os Name campos e ID da fonte de dados às Text propriedades e Value , respectivamente, de todos os nós com uma profundidade de 0:

<asp:TreeNodeBinding Depth="0" TextField="Name" ValueField="ID">  

Um membro de dados especifica o tipo do item de dados na fonte de dados subjacente, mas pode representar informações diferentes dependendo da fonte de dados. Cada item de dados em uma 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 item de dados, o membro de dados especifica qual tipo de item de dados usar. A declaração a seguir TreeNodeBinding associa os <Book> elementos de um XmlDataSource controle a todos os nós na árvore, independentemente do local na hierarquia:

<asp:TreeNodeBinding DataMember="Book" TextField="Title" ValueField= "ISBN">  

Depois que os critérios de associação forem estabelecidos, você poderá associar uma propriedade de um TreeNode objeto que pode ser associada a um valor. Você pode associar a um campo de um item de dados ou a um valor estático. Quando associados a um valor estático, todos os TreeNode objetos aos quais o TreeNodeBinding objeto é aplicado compartilham o mesmo valor.

Observação

Você pode substituir seletivamente uma propriedade associada em um TreeNode objeto definindo a propriedade correspondente diretamente no nó.

A tabela a seguir lista as propriedades da TreeNodeBinding classe que permitem associar uma propriedade do TreeNode objeto a um campo de um item de dados.

Propriedade Descrição
ImageUrlField O campo a ser associado à ImageUrl propriedade de um TreeNode objeto .
ImageToolTipField O campo a ser associado à ImageToolTip propriedade de um TreeNode objeto .
NavigateUrlField O campo a ser associado à NavigateUrl propriedade de um TreeNode objeto .
TextField O campo a ser associado à Text propriedade de um TreeNode objeto .
ToolTipField O campo a ser associado à ToolTip propriedade de um TreeNode objeto .
ValueField O campo a ser associado à Value propriedade de um TreeNode objeto .

A tabela a seguir lista as propriedades da TreeNodeBinding classe que permitem associar uma propriedade do TreeNode objeto a um valor estático.

Propriedade Descrição
ImageUrl O valor estático a ser associado à ImageUrl propriedade de um TreeNode objeto .
ImageToolTip O valor estático a ser associado à ImageToolTip propriedade de um TreeNode objeto .
NavigateUrl O valor estático a ser associado à NavigateUrl propriedade de um TreeNode objeto .
PopulateOnDemand O valor estático a ser associado à PopulateOnDemand propriedade de um TreeNode objeto .
SelectAction O valor estático a ser associado à SelectAction propriedade de um TreeNode objeto .
ShowCheckBox O valor estático a ser associado à ShowCheckBox propriedade de um TreeNode objeto .
Target O valor estático a ser associado à Target propriedade de um TreeNode objeto .
Text O valor estático a ser associado à Text propriedade de um TreeNode objeto .
ToolTip O valor estático a ser associado à ToolTip propriedade de um TreeNode objeto .
Value O valor estático a ser associado à Value propriedade de um TreeNode objeto .

Se objetos conflitantes TreeNodeBinding forem definidos, o TreeView controle aplicará as associações de nó de árvore na seguinte ordem de precedência:

  1. O TreeNodeBinding objeto que define e corresponde a uma profundidade e um membro de dados.

  2. O TreeNodeBinding objeto que define e corresponde somente ao membro de dados.

  3. O TreeNodeBinding objeto que define e corresponde somente à profundidade.

  4. O TreeNodeBinding objeto que não define nem a profundidade nem o membro de dados. (Esse tipo de associação de nó de árvore é aplicado a todos os nós na árvore.)

  5. O TreeNodeBinding objeto que não tem uma correspondência na fonte de dados. Nesse caso, o valor retornado pelo ToString método do item de dados é associado às Text propriedades e Value dos nós aos quais o TreeNodeBinding objeto é aplicado.

A TreeNodeBinding classe também permite formatar o texto exibido em um nó definindo a FormatString propriedade .

Construtores

TreeNodeBinding()

Inicializa uma nova instância da classe TreeNodeBinding.

Propriedades

DataMember

Obtém ou define o valor a corresponder com uma propriedade Type para um item de dados para determinar se é necessário aplicar a associação do nó de árvore.

Depth

Obtém ou define a profundidade do nó à qual o objeto TreeNodeBinding é aplicado.

FormatString

Obtém ou define a cadeia de caracteres que especifica o formato de exibição do texto de um nó ao qual o objeto TreeNodeBinding é aplicado.

ImageToolTip

Obtém ou define o texto de dica de ferramenta para a imagem que é exibida ao lado de um nó ao qual o objeto TreeNodeBinding é aplicado.

ImageToolTipField

Obtém ou define o nome do campo da fonte de dados a ser associado à propriedade ImageToolTip de um objeto TreeNode ao qual o objeto TreeNodeBinding é 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 da fonte de dados a ser associado à propriedade ImageUrl de um objeto TreeNode ao qual o objeto TreeNodeBinding é aplicado.

NavigateUrl

Obtém ou define a URL à qual vincular quando um nó ao qual o objeto TreeNodeBinding está aplicado é clicado.

NavigateUrlField

Obtém ou define o nome do campo da fonte de dados a ser associado à propriedade NavigateUrl de um objeto TreeNode ao qual o objeto TreeNodeBinding é aplicado.

PopulateOnDemand

Obtém ou define um valor que indica se o nó ao qual o objeto TreeNodeBinding é aplicado é preenchido dinamicamente.

SelectAction

Obtém ou define o evento ou os eventos a gerar quando é selecionado um nó ao qual o objeto TreeNodeBinding é aplicado.

ShowCheckBox

Obtém ou define um valor que indica se uma caixa de seleção é exibida ao lado de um nó no qual o objeto TreeNodeBinding é aplicado.

Target

Obtém ou define a janela ou o quadro de destino no qual exibir o conteúdo da página da Web associada a um nó ao qual o objeto TreeNodeBinding é aplicado.

TargetField

Obtém ou define o nome do campo da fonte de dados a ser associado à propriedade Target de um objeto TreeNode ao qual o objeto TreeNodeBinding é aplicado.

Text

Obtém ou define o texto que é exibido para o nó ao qual o objeto TreeNodeBinding é aplicado.

TextField

Obtém ou define o nome do campo da fonte de dados a ser associado à propriedade Text de um objeto TreeNode ao qual o objeto TreeNodeBinding é aplicado.

ToolTip

Obtém ou define o texto de dica de ferramenta para um nó ao qual o objeto TreeNodeBinding é aplicado.

ToolTipField

Obtém ou define o nome do campo da fonte de dados a ser associado à propriedade ToolTip de um objeto TreeNode ao qual o objeto TreeNodeBinding é aplicado.

Value

Obtém ou define um valor exibido que não é exibido, mas é usado para armazenar quaisquer dados adicionais sobre um nó ao qual o objeto TreeNodeBinding é aplicado, como os dados usados para tratar eventos de postback.

ValueField

Obtém ou define o nome do campo da fonte de dados a ser associado à propriedade Value de um objeto TreeNode ao qual o objeto TreeNodeBinding é aplicado.

Métodos

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
ToString()

Retorna a propriedade DataMember.

Implantações explícitas de interface

ICloneable.Clone()

Cria uma cópia do objeto TreeNodeBinding.

IDataSourceViewSchemaAccessor.DataSourceViewSchema

Para obter uma descrição desse membro, confira DataSourceViewSchema.

IStateManager.IsTrackingViewState

Para obter uma descrição desse membro, confira IsTrackingViewState.

IStateManager.LoadViewState(Object)

Carrega o estado de exibição salvo anteriormente para o nó.

IStateManager.SaveViewState()

Salva as alterações ao estado de exibição a um objeto.

IStateManager.TrackViewState()

Instrui o objeto TreeNode a acompanhar as alterações em seu estado de exibição.

Aplica-se a

Confira também