TreeNode Classe

Definição

Representa um nó no TreeView controlo.

public ref class TreeNode : ICloneable, System::Web::UI::IStateManager
public class TreeNode : ICloneable, System.Web.UI.IStateManager
type TreeNode = class
    interface IStateManager
    interface ICloneable
Public Class TreeNode
Implements ICloneable, IStateManager
Herança
TreeNode
Implementações

Exemplos

O exemplo de código seguinte demonstra como configurar os frames para o próximo exemplo de código.


<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>TreeView Frameset Example</title>
</head>
         
    <frameset cols="30%, 75%">
   
        <frame title="MenuFrame" name="Menu" src="TreeViewFramecs.aspx"/>
        <frame title="ContentFrame" name="Content" src="Home.aspx"/> 
           
    </frameset>      
   
</html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>TreeView Frameset Example</title>
</head>
         
    <frameset cols="30%, 75%">
   
        <frame title="MenuFrame" name="Menu" src="TreeViewFramevb.aspx"/>
        <frame title="ContentFrame" name="Content" src="Home.aspx"/> 
           
    </frameset>      
   
</html>

O exemplo de código seguinte demonstra como usar sintaxe declarativa para criar TreeNode objetos no TreeView controlo. Este exemplo é usado dentro do conjunto de frames do exemplo anterior para apresentar um índice.


<%@ 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 Declarative Syntax Example</title>
</head>
<body>
    <form id="form1" runat="server">
    
      <h3>TreeView Declarative Syntax Example</h3>
      
      <asp:TreeView id="SampleTreeView" 
        runat="server">
         
        <Nodes>
        
          <asp:TreeNode Value="Home" 
            NavigateUrl="Home.aspx" 
            Text="Home"
            Target="Content" 
            Expanded="True">
             
            <asp:TreeNode Value="Page 1" 
              NavigateUrl="Page1.aspx" 
              Text="Page1"
              Target="Content">
               
              <asp:TreeNode Value="Section 1" 
                NavigateUrl="Section1.aspx" 
                Text="Section 1"
                Target="Content"/>
                 
            </asp:TreeNode>              
            
            <asp:TreeNode Value="Page 2" 
              NavigateUrl="Page2.aspx"
              Text="Page 2"
              Target="Content">
               
            </asp:TreeNode> 
            
          </asp:TreeNode>
        
        </Nodes>
        
      </asp:TreeView>

    </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 Declarative Syntax Example</title>
</head>
<body>
    <form id="form1" runat="server">
    
      <h3>TreeView Declarative Syntax Example</h3>
      
      <asp:TreeView id="SampleTreeView" 
        runat="server">
         
        <Nodes>
        
          <asp:TreeNode Value="Home" 
            NavigateUrl="Home.aspx" 
            Text="Home"
            Target="Content" 
            Expanded="True">
             
            <asp:TreeNode Value="Page 1" 
              NavigateUrl="Page1.aspx" 
              Text="Page1"
              Target="Content">
               
              <asp:TreeNode Value="Section 1" 
                NavigateUrl="Section1.aspx" 
                Text="Section 1"
                Target="Content"/>
                 
            </asp:TreeNode>              
            
            <asp:TreeNode Value="Page 2" 
              NavigateUrl="Page2.aspx"
              Text="Page 2"
              Target="Content">
               
            </asp:TreeNode> 
            
          </asp:TreeNode>
        
        </Nodes>
        
      </asp:TreeView>

    </form>
  </body>
</html>

Observações

O TreeView controlo é composto por nós. Cada entrada na árvore é chamada de nó e é representada por um TreeNode objeto. Um nó que contém outros nós é chamado de nó pai. Um nó contido por outro nó é chamado de nó filho. Um nó que não tem nós filhos é chamado de nó folha. Um nó que não está contido por nenhum outro nó, mas é o ancestral de todos os outros nós, é o nó raiz. Um nó pode ser tanto pai como filho, mas os nós raiz, pai e folha são mutuamente exclusivos. Várias propriedades visuais e comportamentais dos nós são determinadas por se um nó é raiz,pai ou nó folha .

Embora uma árvore típica tenha apenas um nó raiz, o TreeView controlo permite adicionar múltiplos nós raiz à sua estrutura de árvore. Isto é útil quando se pretende mostrar listagens de itens sem mostrar um único nó raiz principal, como numa lista de categorias de produtos.

Um nó armazena principalmente dados em duas propriedades, a Text propriedade e a propriedade Value . O valor da Text propriedade é exibido no TreeView controlo, e a Value propriedade é usada para armazenar quaisquer dados adicionais sobre o nó, como dados usados para gerir eventos de postback. Um nó também armazena o caminho do nó até ao seu nó raiz na ValuePath propriedade. A ValuePath propriedade indica a posição do nó em relação ao nó raiz.

Note

Nós ao mesmo nível devem ter cada um um valor único para a Value propriedade; o TreeView controlo não pode distinguir entre diferentes nós do mesmo nível que tenham o mesmo valor. Neste cenário, se o utilizador clicar num nó com valor duplicado, o nó que aparece primeiro no TreeView controlo é selecionado.

Um objeto é composto pelos seguintes quatro elementos da TreeNode interface de utilizador (UI), que podem ser personalizados ou ocultos:

  • Um ícone indicador de nó de expansão usado para indicar se o nó está expandido, colapsado ou não expansível.

  • Uma caixa opcional associada ao nó.

  • Uma imagem de nó opcional.

  • O texto do nó.

Pode especificar uma imagem personalizada para os indicadores de nós expansíveis, dobráveis e não expansíveis definindo as ExpandImageUrlpropriedades , CollapseImageUrl, e NoExpandImageUrl da TreeView classe. Os ícones indicadores do nó de expansão podem até ser completamente ocultos ao definir a ShowExpandCollapse propriedade da TreeView classe para false.

Para mostrar uma caixa de seleção ao lado de um nó, defina a ShowCheckBoxes propriedade da TreeView classe. Quando a ShowCheckBoxes propriedade é definida para um valor diferente de TreeNodeType.Node, caixas de seleção são exibidas ao lado do tipo de nó especificado. Pode substituir seletivamente a caixa de verificação de um nó individual definindo a propriedade do ShowCheckBox nó. Quando uma caixa de seleção for exibida, use a Checked propriedade para determinar se a caixa de seleção está selecionada.

Pode mostrar uma imagem num nó definindo a ImageUrl propriedade. Esta imagem é exibida ao lado do texto do nó.

O texto de um nó no TreeView controlo pode estar em dois modos: modo de seleção ou modo de navegação. Por defeito, um nó está em modo de seleção. Para colocar um nó em modo de navegação, defina a propriedade do NavigateUrl nó para um valor diferente de uma cadeia vazia (""). Para colocar um nó em modo de seleção, defina a propriedade do NavigateUrl nó para uma cadeia vazia.

Note

Alguns navegadores de Internet têm uma limitação que pode afetar o desempenho do TreeView controlo. Por exemplo, Microsoft Internet Explorer 6.0 tem um limite de caracteres URL de 2067 caracteres que publica. Se o número de caracteres numa URL de um nó for superior a esse número, expandir esse nó falhará e não será lançada nenhuma exceção.

Por defeito, clicar num nó que está em modo de seleção publica a página de volta ao servidor e levanta o SelectedNodeChanged evento. Pode, opcionalmente, especificar um evento diferente a levantar definindo a propriedade do SelectAction nó. Para obter mais informações, veja SelectAction. Para determinar qual nó foi clicado no modo de seleção, use a SelectedNode propriedade do TreeView controlo.

Quando um nó está em modo de navegação, todos os eventos de seleção são desativados para esse nó. Clicar no nó no modo de navegação direciona o utilizador para a URL especificada. Pode, opcionalmente, definir a Target propriedade para especificar a janela ou moldura onde deve ser exibido o conteúdo ligado.

A TreeNode classe contém várias propriedades que são usadas para armazenar o estado do nó. Use a Selected propriedade para determinar se um nó é selecionado. Para determinar se o nó está expandido, use a Expanded propriedade . A DataBound propriedade é usada para determinar se um nó está ligado a dados. Quando um nó está ligado a dados, pode aceder ao elemento subjacente usando a DataItem propriedade.

A classe fornece várias propriedades que ajudam a determinar a posição de um nó em relação a outros nós na árvore. Use a Depth propriedade para determinar a profundidade do nó. Pode obter a lista delimitada de nós do nó atual para o seu nó raiz usando esta ValuePath propriedade. Para determinar o nó pai do nó, use a Parent propriedade . Os nós filhos são acedidos através da ChildNodes coleção.

Por vezes, não é prático pré-definir estaticamente a estrutura da árvore devido ao tamanho dos dados ou ao conteúdo personalizado que depende da entrada do utilizador. Por causa disso, o controlo TreeView suporta a população dinâmica de nós. Um nó pode ser preenchido em tempo de execução quando é expandido. Note que pode ter comportamentos inesperados se persistir em nós criados assíncronos. Por exemplo, se usar um thread worker em segundo plano para preencher os nós de forma assíncrona, a árvore de nós pode não ser preenchida imediatamente, embora o controlo continue ao longo do resto do ciclo de vida da página. No postback, a criação atrasada dos nós pode causar problemas quando o estado de visão do controlo está carregado mas a árvore de nós não está totalmente preenchida. Para mais informações sobre a população dinâmica de nós, consulte a PopulateOnDemand propriedade.

Para obter uma lista de valores das propriedades iniciais de uma instância de TreeNode, consulte o construtor TreeNode.

Construtores

Name Description
TreeNode()

Inicializa uma nova instância da TreeNode classe sem texto nem valor.

TreeNode(String, String, String, String, String)

Inicializa uma nova instância da TreeNode classe usando o texto especificado, valor, URL da imagem, URL de navegação e destino.

TreeNode(String, String, String)

Inicializa uma nova instância da TreeNode classe usando o texto, valor e URL da imagem especificados.

TreeNode(String, String)

Inicializa uma nova instância da TreeNode classe usando o texto e valor especificados.

TreeNode(String)

Inicializa uma nova instância da TreeNode classe usando o texto especificado.

TreeNode(TreeView, Boolean)

Inicializa uma nova instância da TreeNode classe usando o proprietário especificado.

Propriedades

Name Description
Checked

Recebe ou define um valor que indica se a caixa de seleção do nó está selecionada.

ChildNodes

Obtém uma TreeNodeCollection coleção que contém os nós filhos de primeiro nível do nó atual.

DataBound

Recebe um valor que indica se o nó foi criado através de ligação de dados.

DataItem

Obtém o elemento de dados que está ligado ao controlo.

DataPath

Atribui o caminho para os dados ao nó.

Depth

Obtém a profundidade do nó.

Expanded

Recebe ou define um valor que indica se o nó está expandido.

ImageToolTip

Recebe ou define o texto ToolTip para a imagem apresentada ao lado de um nó.

ImageUrl

Obtém ou define o URL para uma imagem que é exibida ao lado do nó.

IsTrackingViewState

Recebe um valor que indica se o nó está a guardar alterações ao seu estado de visualização.

NavigateUrl

Obtém ou define a URL para navegar quando o nó é clicado.

Parent

Obtém o nó pai do nó atual.

PopulateOnDemand

Recebe ou define um valor que indica se o nó é povoado dinamicamente.

SelectAction

Recebe ou define o evento ou eventos a levantar quando um nó é selecionado.

Selected

Recebe ou define um valor que indica se o nó está selecionado.

ShowCheckBox

Recebe ou define um valor que indica se uma caixa de seleção é exibida ao lado do nó.

Target

Obtém ou define a janela ou frame alvo onde mostrar o conteúdo da página Web associado a um nó.

Text

Recebe ou define o texto apresentado para o nó no TreeView controlo.

ToolTip

Recebe ou define o texto ToolTip para o nó.

Value

Obtém ou define um valor não exibido usado para armazenar quaisquer dados adicionais sobre o nó, como dados usados para gerir eventos de postback.

ValuePath

Obtém o caminho do nó raiz até ao nó atual.

Métodos

Name Description
Clone()

Cria uma nova instância da TreeNode classe com as propriedades da instância atual TreeNode .

Collapse()

Colapsa o nó da árvore atual.

CollapseAll()

Colapsa o nó atual e todos os seus nós filhos.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
Expand()

Expande o nó atual da árvore.

ExpandAll()

Expande o nó atual e todos os seus nós filhos.

GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
LoadViewState(Object)

Carrega o estado de visualização previamente guardado do nó.

MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
RenderPostText(HtmlTextWriter)

Permite aos programadores de controlo adicionar renderização adicional ao nó.

RenderPreText(HtmlTextWriter)

Permite aos programadores de controlo adicionar renderização adicional ao nó.

SaveViewState()

Guarda o estado atual da vista do nó.

Select()

Seleciona o nó atual no TreeView controlo.

ToggleExpandState()

Alterna entre o estado expandido e o colapsado do nó.

ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)
TrackViewState()

Marca o ponto de partida para começar a acompanhar e guardar as alterações de estado da vista no nó.

Implementações de Interface Explícita

Name Description
ICloneable.Clone()

Cria uma cópia do TreeNode objeto.

IStateManager.IsTrackingViewState

Para uma descrição deste elemento, veja IsTrackingViewState.

IStateManager.LoadViewState(Object)

Carrega o estado de visualização previamente guardado do nó.

IStateManager.SaveViewState()

Guarda as alterações de estado de visualização para um Object.

IStateManager.TrackViewState()

Instrui o TreeNode objeto a acompanhar alterações ao seu estado de visualização.

Aplica-se a

Ver também