Compartir por


TreeNode Clase

Definición

Representa un nodo del TreeView control .

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 dentro del 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á contenido en ningún otro nodo, pero 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 están determinadas por 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 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 usado para mostrar si el nodo está expandido, contraído o no expandible.

  • Casilla opcional asociada al nodo.

  • 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 del indicador de nodo de expansión incluso 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, consulte 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 se dirige 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. Use 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. Debido a esto, 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 los 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 postback, la creación retrasada de los nodos puede causar problemas cuando se carga el estado de vista del control, pero el árbol de nodos no se rellena completamente. Para obtener más información sobre el rellenado dinámico de nodos, consulte la PopulateOnDemand propiedad .

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

Constructores

Nombre Description
TreeNode()

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

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

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

TreeNode(String, String, String)

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

TreeNode(String, String)

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

TreeNode(String)

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

TreeNode(TreeView, Boolean)

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

Propiedades

Nombre Description
Checked

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

ChildNodes

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

DataBound

Obtiene un valor que indica si el nodo se creó a través del 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 de la imagen que se muestra junto a un nodo.

ImageUrl

Obtiene o establece la dirección URL en una imagen que se muestra junto al nodo.

IsTrackingViewState

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

NavigateUrl

Obtiene o establece la dirección URL a la que navegar 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 van a generar 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 junto al nodo.

Target

Obtiene o establece la ventana o marco de destino en el que se va a mostrar el contenido de la página web asociado a un nodo.

Text

Obtiene o establece el texto que se muestra para el nodo del TreeView control .

ToolTip

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

Value

Obtiene o establece un valor no mostrado que se usa para almacenar datos adicionales sobre el nodo, como los datos usados para controlar eventos de postback.

ValuePath

Obtiene la ruta de acceso del nodo raíz al nodo actual.

Métodos

Nombre Description
Clone()

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

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 al objeto actual.

(Heredado de Object)
Expand()

Expande el nodo de árbol actual.

ExpandAll()

Expande el nodo actual y todos sus nodos secundarios.

GetHashCode()

Actúa como 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 anteriormente del nodo.

MemberwiseClone()

Crea una copia superficial del Objectactual.

(Heredado de Object)
RenderPostText(HtmlTextWriter)

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

RenderPreText(HtmlTextWriter)

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

SaveViewState()

Guarda el estado de vista actual del nodo.

Select()

Selecciona el nodo actual en el TreeView control .

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 de partida en el que se va a comenzar a realizar el seguimiento y guardar los cambios de estado de vista en el nodo.

Implementaciones de interfaz explícitas

Nombre Description
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 guardado anteriormente del nodo.

IStateManager.SaveViewState()

Guarda los cambios de estado de vista en un Object.

IStateManager.TrackViewState()

Indica al TreeNode objeto que realice un seguimiento de los cambios en su estado de vista.

Se aplica a

Consulte también