TreeNode Clase

Definición

Representa un nodo del control TreeView.

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
Herencia
TreeNode
Implementaciones

Ejemplos

En el ejemplo de código siguiente se muestra cómo configurar los marcos para el siguiente ejemplo 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>

En el ejemplo de código siguiente se muestra cómo usar la sintaxis declarativa para crear TreeNode objetos en el TreeView control . Este ejemplo se usa en el conjunto de marcos del ejemplo anterior para mostrar una tabla de contenido.


<%@ 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>

Comentarios

El TreeView control se compone de nodos. Cada entrada del árbol se denomina nodo y se representa mediante un TreeNode objeto . Un nodo que contiene otros nodos se denomina nodo primario. Un nodo contenido por otro nodo se denomina nodo secundario. Un nodo que no tiene nodos secundarios se denomina nodo hoja. Un nodo que no está incluido en ningún otro nodo, pero que es el antecesor de todos los demás nodos es el nodo raíz. Un nodo puede ser un elemento primario y un elemento secundario, pero los nodos raíz, primario y hoja son mutuamente excluyentes. Varias propiedades visuales y de comportamiento de los nodos se determinan mediante si un nodo es raíz,primario o nodo hoja .

Aunque un árbol típico tiene solo un nodo raíz, el TreeView control permite agregar varios nodos raíz a la estructura de árbol. Esto resulta útil cuando desea mostrar listados de elementos sin mostrar un único nodo raíz principal, como en una lista de categorías de productos.

Un nodo almacena principalmente los datos en dos propiedades, la Text propiedad y la Value propiedad . El valor de la Text propiedad se muestra en el TreeView control y la Value propiedad se usa para almacenar datos adicionales sobre el nodo, como los datos usados para controlar los eventos de postback. Un nodo también almacena la ruta de acceso del nodo a su nodo raíz en la ValuePath propiedad . La ValuePath propiedad indica la posición del nodo en relación con el nodo raíz.

Nota

Los nodos en el mismo nivel deben tener un valor único para la Value propiedad; el TreeView control no puede distinguir entre nodos diferentes en el mismo nivel que tienen el mismo valor. En este escenario, si el usuario hace clic en un nodo que tiene un valor duplicado, se selecciona el nodo que aparece primero en el TreeView control.

Un TreeNode objeto se compone de los cuatro elementos siguientes de la interfaz de usuario (UI), que se pueden personalizar o ocultar:

  • Icono de indicador de nodo de expansión que se usa para mostrar si el nodo está expandido, contraído o no expandible.

  • Casilla opcional asociada al nodo.

  • Una imagen de nodo opcional.

  • Texto del nodo.

Puede especificar una imagen personalizada para los indicadores de nodo expandibles, contraíbles y no expandibles estableciendo las ExpandImageUrlpropiedades , CollapseImageUrly NoExpandImageUrl de la TreeView clase . Los iconos de indicador de nodo de expansión se pueden ocultar completamente estableciendo la ShowExpandCollapse propiedad de la TreeView clase falseen .

Para mostrar una casilla junto a un nodo, establezca la ShowCheckBoxes propiedad de la TreeView clase . Cuando la ShowCheckBoxes propiedad se establece en un valor distinto TreeNodeType.Nodede , las casillas se muestran junto al tipo de nodo especificado. Puede invalidar selectivamente la casilla de un nodo individual estableciendo la propiedad del ShowCheckBox nodo. Cuando se muestre una casilla, use la Checked propiedad para determinar si la casilla está activada.

Puede mostrar una imagen en un nodo estableciendo la ImageUrl propiedad . Esta imagen se muestra junto al texto del nodo.

El texto de un nodo del TreeView control puede estar en uno de los dos modos: modo de selección o modo de navegación. De forma predeterminada, un nodo está en modo de selección. Para colocar un nodo en modo de navegación, establezca la propiedad del NavigateUrl nodo en un valor distinto de una cadena vacía (""). Para colocar un nodo en modo de selección, establezca la propiedad del NavigateUrl nodo en una cadena vacía.

Nota

Algunos exploradores de Internet tienen una limitación que puede afectar al rendimiento del TreeView control. Por ejemplo, Microsoft Internet Explorer 6.0 tiene un límite de caracteres de dirección URL de 2067 caracteres que publica. Si el número de caracteres de una dirección URL de un nodo es mayor que ese número, se producirá un error al expandir ese nodo y no se producirá ninguna excepción.

De forma predeterminada, al hacer clic en un nodo que está en modo de selección, se devuelve la página al servidor y se genera el SelectedNodeChanged evento . Opcionalmente, puede especificar un evento diferente para generar estableciendo la propiedad del SelectAction nodo. Para obtener más información, vea SelectAction. Para determinar qué nodo se hizo clic en el modo de selección, use la SelectedNode propiedad del TreeView control .

Cuando un nodo está en modo de navegación, todos los eventos de selección están deshabilitados para ese nodo. Al hacer clic en el nodo en modo de navegación, el usuario dirige al usuario a la dirección URL especificada. Opcionalmente, puede establecer la Target propiedad para especificar la ventana o marco en el que se va a mostrar el contenido vinculado.

La TreeNode clase contiene varias propiedades que se usan para almacenar el estado del nodo. Utilice la Selected propiedad para determinar si se selecciona un nodo. Para determinar si el nodo está expandido, use la Expanded propiedad . La DataBound propiedad se usa para determinar si un nodo está enlazado a los datos. Cuando un nodo está enlazado a datos, puede acceder al elemento de datos subyacente mediante la DataItem propiedad .

La clase proporciona varias propiedades que ayudan a determinar la posición de un nodo en relación con otros nodos del árbol. Utilice la Depth propiedad para determinar la profundidad del nodo. Puede obtener la lista delimitada de nodos del nodo actual a su nodo raíz mediante la ValuePath propiedad . Para determinar el nodo primario del nodo, use la Parent propiedad . Se accede a los nodos secundarios mediante la ChildNodes colección .

A veces, no es práctico predefinir estáticamente la estructura de árbol debido al tamaño de los datos o al contenido personalizado que depende de la entrada del usuario. Por este motivo, el control admite el TreeView rellenado dinámico de nodos. Un nodo se puede rellenar en tiempo de ejecución cuando se expande. Tenga en cuenta que puede obtener un comportamiento inesperado si conserva nodos creados de forma asincrónica. Por ejemplo, si usa un subproceso de trabajo en segundo plano para rellenar los nodos de forma asincrónica, es posible que el árbol de nodos no se rellene inmediatamente, aunque el control continúe con el resto del ciclo de vida de la página. En la postback, la creación diferida de los nodos puede causar problemas cuando se carga el estado de vista del control, pero el árbol de nodos no se rellena por completo. Para obtener más información sobre el rellenado dinámico de nodos, vea la PopulateOnDemand propiedad .

Para obtener una lista de valores de propiedad iniciales para una instancia de TreeNode, vea el TreeNode constructor .

Constructores

TreeNode()

Inicializa una instancia nueva de la clase TreeNode sin un texto ni un valor.

TreeNode(String)

Inicializa una nueva instancia de la clase TreeNode con el texto especificado.

TreeNode(String, String)

Inicializa una instancia nueva de la clase TreeNode con el texto y el valor especificados.

TreeNode(String, String, String)

Inicializa una instancia nueva de la clase TreeNode con el texto, el valor y la dirección URL de imagen especificados.

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

Inicializa una instancia nueva de la clase TreeNode utilizando los datos de texto, valor, dirección URL de imagen, dirección URL de desplazamiento y destino especificados.

TreeNode(TreeView, Boolean)

Inicializa una instancia nueva de la clase TreeNode utilizando el propietario especificado.

Propiedades

Checked

Obtiene o establece un valor que indica si la casilla del nodo está activada.

ChildNodes

Obtiene una colección TreeNodeCollection que contiene los nodos secundarios de primer nivel del nodo actual.

DataBound

Obtiene un valor que indica si el nodo se creó mediante enlace de datos.

DataItem

Obtiene el elemento de datos enlazado al control.

DataPath

Obtiene la ruta de acceso a los datos enlazados al nodo.

Depth

Obtiene la profundidad del nodo.

Expanded

Obtiene o establece un valor que indica si el nodo está expandido.

ImageToolTip

Obtiene o establece el texto de información sobre herramientas para la imagen mostrada al lado de un nodo.

ImageUrl

Obtiene o establece la dirección URL de una imagen que se muestra al lado del nodo.

IsTrackingViewState

Obtiene un valor que indica si el nodo está guardando los cambios en su estado de vista.

NavigateUrl

Obtiene o establece la dirección URL destino cuando se hace clic en el nodo.

Parent

Obtiene el nodo primario del nodo actual.

PopulateOnDemand

Obtiene o establece un valor que indica si el nodo se rellena dinámicamente.

SelectAction

Obtiene o establece el evento o eventos que se generan cuando se selecciona un nodo.

Selected

Obtiene o establece un valor que indica si el nodo está seleccionado.

ShowCheckBox

Obtiene o establece un valor que indica si se muestra una casilla al lado del nodo.

Target

Obtiene o establece la ventana o el marco de destino donde se mostrará el contenido de una página Web asociada a un nodo.

Text

Obtiene o establece el texto mostrado para el nodo en un control TreeView.

ToolTip

Obtiene o establece el texto de la información sobre herramientas para el nodo.

Value

Obtiene o establece un valor que no se muestra en pantalla y que se utiliza para almacenar datos adicionales sobre el nodo, tales como los datos utilizados para controlar los eventos de postback.

ValuePath

Obtiene la ruta de acceso desde el nodo raíz hasta el nodo actual.

Métodos

Clone()

Crea una instancia nueva de la clase TreeNode con las propiedades de la instancia TreeNode actual.

Collapse()

Contrae el nodo de árbol actual.

CollapseAll()

Contrae el nodo actual y todos sus nodos secundarios.

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
Expand()

Expande el nodo de árbol actual.

ExpandAll()

Expande el nodo actual y todos sus nodos secundarios.

GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
LoadViewState(Object)

Carga el estado de vista guardado previamente del nodo.

MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
RenderPostText(HtmlTextWriter)

Permite a los desarrolladores de controles agregar una representación adicional al nodo.

RenderPreText(HtmlTextWriter)

Permite a los desarrolladores de controles agregar una representación adicional al nodo.

SaveViewState()

Guarda el estado de vista actual del nodo.

Select()

Selecciona el nodo actual del control TreeView.

ToggleExpandState()

Alterna entre el estado expandido y contraído del nodo.

ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)
TrackViewState()

Marca el punto en el que debe comenzar el seguimiento y el almacenamiento de los cambios del estado de vista realizados en el nodo.

Implementaciones de interfaz explícitas

ICloneable.Clone()

Crea una copia del objeto TreeNode .

IStateManager.IsTrackingViewState

Para obtener una descripción de este miembro, vea IsTrackingViewState.

IStateManager.LoadViewState(Object)

Carga el estado de vista previamente guardado del nodo.

IStateManager.SaveViewState()

Guarda los cambios del estado de vista en un objeto Object.

IStateManager.TrackViewState()

Indica al objeto TreeNode que efectúe el seguimiento de los cambios de su estado de vista.

Se aplica a

Consulte también