Partilhar via


TreeNodeBinding Classe

Definição

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

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 algumas declarações de associação de nó de árvore de exemplo.

Associação de exemplo Descrição
<asp:TreeNodeBinding TextField="Title" ValueField= "ID"/> Associa a Text e Value as propriedades de todos os nós na árvore aos campos e ID à Title fonte de dados, respectivamente. Todos os nós usam essa declaração de associação de nó de árvore porque as propriedades e Depth as DataMember propriedades não estão definidas.
<asp:TreeNodeBinding DataMember= "Book" TextField= "Title" ValueField= "ID"/> Associa a Text e Value as propriedades de todos os nós na árvore aos campos e ID ao Title item de dados na fonte de Book dados, respectivamente.
<asp:TreeNodeBinding Depth="2" TextField= "Title" ValueField= "ID"/> Associa a Text e Value as propriedades de todos os nós com uma profundidade de 2 na árvore ao Title e ID campos do item de dados na fonte de dados, respectivamente.
<asp:TreeNodeBinding DataMember="Book" Depth= "2" TextField= "Title" ValueField= "ID" ImageUrl= "Image.jpg"> Associa a Text e Value as propriedades de todos os nós com uma profundidade de 2 na árvore ao Title e ID campos do item de Book 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á 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 de associação. Os critérios indicam quando um item de dados deve ser associado a um nó. Você pode especificar a propriedade ou DataMember a Depth propriedade ou ambas as propriedades. Há um pequeno ganho de desempenho especificando ambos. Uma profundidade de nó especifica o nível do nó que é associado. Por exemplo, a declaração a seguir TreeNodeBinding associa os Name campos e ID a fonte de dados à e Value às Text propriedades, 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 associado 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 objeto a TreeNode 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 ao Text e Value às propriedades 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

Nome Description
TreeNodeBinding()

Inicializa uma nova instância da classe TreeNodeBinding.

Propriedades

Nome Description
DataMember

Obtém ou define o valor a ser correspondente a uma Type propriedade de um item de dados para determinar se a associação de nó de árvore deve ser aplicada.

Depth

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

FormatString

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

ImageToolTip

Obtém ou define o texto da Dica de Ferramenta para a imagem exibida ao lado de um nó ao qual o TreeNodeBinding objeto é aplicado.

ImageToolTipField

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

ImageUrl

Obtém ou define a URL para uma imagem 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 à ImageUrl propriedade de um TreeNode objeto ao qual o TreeNodeBinding objeto é aplicado.

NavigateUrl

Obtém ou define a URL a ser vinculada quando um nó ao qual o TreeNodeBinding objeto é aplicado é clicado.

NavigateUrlField

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

PopulateOnDemand

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

SelectAction

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

ShowCheckBox

Obtém 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 de destino ou o quadro no qual exibir o conteúdo da página da Web associado a um nó ao qual o TreeNodeBinding objeto é aplicado.

TargetField

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

Text

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

TextField

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

ToolTip

Obtém ou define o texto da Dica de Ferramenta para um nó ao qual o TreeNodeBinding objeto é aplicado.

ToolTipField

Obtém ou define o nome do campo da fonte de dados a ser associado à ToolTip propriedade de um TreeNode objeto ao qual o TreeNodeBinding objeto é 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 TreeNodeBinding objeto é aplicado, como dados usados para lidar com eventos de postback.

ValueField

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

Métodos

Nome Description
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 Objectatual.

(Herdado de Object)
ToString()

Retorna a DataMember propriedade.

Implantações explícitas de interface

Nome Description
ICloneable.Clone()

Cria uma cópia do objeto TreeNodeBinding.

IDataSourceViewSchemaAccessor.DataSourceViewSchema

Para obter uma descrição deste membro, consulte DataSourceViewSchema.

IStateManager.IsTrackingViewState

Para obter uma descrição deste membro, consulte IsTrackingViewState.

IStateManager.LoadViewState(Object)

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

IStateManager.SaveViewState()

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

IStateManager.TrackViewState()

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

Aplica-se a

Confira também