TreeView Clase

Definición

Muestra datos jerárquicos, como una tabla de contenido, en una estructura de árbol.

public ref class TreeView : System::Web::UI::WebControls::HierarchicalDataBoundControl, System::Web::UI::ICallbackEventHandler, System::Web::UI::IPostBackDataHandler, System::Web::UI::IPostBackEventHandler
[System.Web.UI.ControlValueProperty("SelectedValue")]
public class TreeView : System.Web.UI.WebControls.HierarchicalDataBoundControl, System.Web.UI.ICallbackEventHandler, System.Web.UI.IPostBackDataHandler, System.Web.UI.IPostBackEventHandler
[<System.Web.UI.ControlValueProperty("SelectedValue")>]
type TreeView = class
    inherit HierarchicalDataBoundControl
    interface IPostBackEventHandler
    interface IPostBackDataHandler
    interface ICallbackEventHandler
Public Class TreeView
Inherits HierarchicalDataBoundControl
Implements ICallbackEventHandler, IPostBackDataHandler, IPostBackEventHandler
Herencia
Atributos
Implementaciones

Ejemplos

Esta sección contiene siete ejemplos de código:

  • En el primer ejemplo de código se muestra cómo configurar los marcos para el segundo ejemplo de código.

  • En el segundo ejemplo de código se muestra cómo usar la sintaxis declarativa para mostrar datos estáticos en el TreeView control.

  • En el tercer ejemplo de código se muestra cómo enlazar el TreeView control a un origen de datos XML.

  • En el cuarto ejemplo de código se proporcionan datos XML de ejemplo para el tercer ejemplo de código.

  • En el quinto ejemplo de código se muestra cómo usar el control para la TreeView navegación del sitio enlazandolo a un SiteMapDataSource control .

  • El sexto ejemplo de código proporciona datos de mapa de sitio de ejemplo para el quinto ejemplo de código.

  • En el séptimo ejemplo de código se muestra cómo rellenar los nodos del TreeView control desde el cliente.

En el ejemplo de código siguiente se muestra cómo configurar los marcos para el ejemplo de código siguiente.


<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 mostrar datos estáticos en el TreeView control . Este ejemplo se usa en el conjunto de fotogramas 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>

En el ejemplo de código siguiente se muestra cómo enlazar el TreeView control a un origen de datos XML. Para que este ejemplo funcione correctamente, debe copiar los datos XML de ejemplo, proporcionados después de este ejemplo de código, en un archivo denominado 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>

En el ejemplo de código siguiente se proporcionan datos XML de ejemplo para el ejemplo anterior.

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

En el ejemplo de código siguiente se muestra cómo usar el control para la TreeView navegación del sitio enlazandolo a un SiteMapDataSource control . Para que este ejemplo funcione correctamente, debe copiar los datos del mapa del sitio de ejemplo, proporcionados después de este ejemplo de código, en un archivo denominado Web.sitemap.


<%@ 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 AutoGenerateBindings Example</title>
</head>
<body>
    <form id="form1" runat="server">
    
      <h3>TreeView AutoGenerateBindings Example</h3>
    
      <!-- Set the AutoGenerateBindings property -->
      <!-- to false declaratively to allow for   -->
      <!-- the user-defined Bindings collection. -->
      <asp:TreeView id="SiteTreeView" 
        DataSourceID="SiteMapSource"
        AutoGenerateDataBindings="False"
        runat="server">
        
        <DataBindings>
        
          <asp:TreeNodeBinding TextField="title" NavigateUrlField="url"/>
        
        </DataBindings>
            
      </asp:TreeView>
      
      <asp:SiteMapDataSource ID="SiteMapSource" 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">
<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>TreeView AutoGenerateBindings Example</title>
</head>
<body>
    <form id="form1" runat="server">
    
      <h3>TreeView AutoGenerateBindings Example</h3>
    
      <!-- Set the AutoGenerateBindings property -->
      <!-- to false declaratively to allow for   -->
      <!-- the user-defined Bindings collection. -->
      <asp:TreeView id="SiteTreeView" 
        DataSourceID="SiteMapSource"
        AutoGenerateDataBindings="False"
        runat="server">
        
        <DataBindings>
        
          <asp:TreeNodeBinding TextField="title" NavigateUrlField="url"/>
        
        </DataBindings>
            
      </asp:TreeView>
      
      <asp:SiteMapDataSource ID="SiteMapSource" runat="server"/>
         
    </form>
  </body>
</html>

En el ejemplo de código siguiente se proporcionan datos de mapa de sitio de ejemplo para el ejemplo de código anterior.

<siteMap>
    <siteMapNode title="Home" description="Home" url="default.aspx">
        <siteMapNode title="Products" description="Products" url="Products.aspx">
            <siteMapNode title="Computers" url="Computers.aspx"/>
            <siteMapNode title="Accessories" url="Accessories.aspx"/>
        </siteMapNode>
    </siteMapNode>
</siteMap>

En el ejemplo de código siguiente se muestra cómo rellenar los nodos del TreeView control desde el cliente. Cuando el rellenado de nodos del lado cliente está habilitado, los nodos se rellenan dinámicamente en el cliente, sin necesidad de volver a publicar en el servidor.


<%@ Page Language="C#" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

  void PopulateNode(Object sender, TreeNodeEventArgs e)
  {

    // Call the appropriate method to populate a node at a particular level.
    switch(e.Node.Depth)
    {
      case 0:
        // Populate the first-level nodes.
        PopulateCategories(e.Node);
        break;
      case 1:
        // Populate the second-level nodes.
        PopulateProducts(e.Node);
        break;
      default:
        // Do nothing.
        break;
    }
    
  }

  void PopulateCategories(TreeNode node)
  {
    
    // Query for the product categories. These are the values
    // for the second-level nodes.
    DataSet ResultSet = RunQuery("Select CategoryID, CategoryName From Categories");

    // Create the second-level nodes.
    if(ResultSet.Tables.Count > 0)
    {
    
      // Iterate through and create a new node for each row in the query results.
      // Notice that the query results are stored in the table of the DataSet.
      foreach (DataRow row in ResultSet.Tables[0].Rows)
      {
        
        // Create the new node. Notice that the CategoryId is stored in the Value property 
        // of the node. This will make querying for items in a specific category easier when
        // the third-level nodes are created. 
        TreeNode newNode = new TreeNode();
        newNode.Text = row["CategoryName"].ToString(); 
        newNode.Value = row["CategoryID"].ToString();        

        // Set the PopulateOnDemand property to true so that the child nodes can be 
        // dynamically populated.
        newNode.PopulateOnDemand = true;
        
        // Set additional properties for the node.
        newNode.SelectAction = TreeNodeSelectAction.Expand;
        
        // Add the new node to the ChildNodes collection of the parent node.
        node.ChildNodes.Add(newNode);
        
      }
      
    }
    
  }

  void PopulateProducts(TreeNode node)
  {

    // Query for the products of the current category. These are the values
    // for the third-level nodes.
    DataSet ResultSet = RunQuery("Select ProductName From Products Where CategoryID=" + node.Value);

    // Create the third-level nodes.
    if(ResultSet.Tables.Count > 0)
    {
    
      // Iterate through and create a new node for each row in the query results.
      // Notice that the query results are stored in the table of the DataSet.
      foreach (DataRow row in ResultSet.Tables[0].Rows)
      {
      
        // Create the new node.
        TreeNode NewNode = new TreeNode(row["ProductName"].ToString());
        
        // Set the PopulateOnDemand property to false, because these are leaf nodes and
        // do not need to be populated.
        NewNode.PopulateOnDemand = false;
        
        // Set additional properties for the node.
        NewNode.SelectAction = TreeNodeSelectAction.None;
        
        // Add the new node to the ChildNodes collection of the parent node.
        node.ChildNodes.Add(NewNode);
        
      }
      
    }

  }

  DataSet RunQuery(String QueryString)
  {

    // Declare the connection string. This example uses Microsoft SQL Server 
    // and connects to the Northwind sample database.
    String ConnectionString = "server=localhost;database=NorthWind;Integrated Security=SSPI"; 

    SqlConnection DBConnection = new SqlConnection(ConnectionString);
    SqlDataAdapter DBAdapter;
    DataSet ResultsDataSet = new DataSet();

    try
    {

      // Run the query and create a DataSet.
      DBAdapter = new SqlDataAdapter(QueryString, DBConnection);
      DBAdapter.Fill(ResultsDataSet);

      // Close the database connection.
      DBConnection.Close();

    }
    catch(Exception ex)
    {

      // Close the database connection if it is still open.
      if(DBConnection.State == ConnectionState.Open)
      {
        DBConnection.Close();
      }
      
      Message.Text = "Unable to connect to the database.";

    }

    return ResultsDataSet;

  }

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>TreeView PopulateNodesFromClient Example</title>
</head>
<body>
    <form id="form1" runat="server">
    
      <h3>TreeView PopulateNodesFromClient Example</h3>
    
      <asp:TreeView id="LinksTreeView"
        Font-Names= "Arial"
        ForeColor="Blue"
        EnableClientScript="true"
        PopulateNodesFromClient="true"  
        OnTreeNodePopulate="PopulateNode"
        runat="server">
         
        <Nodes>
        
          <asp:TreeNode Text="Inventory" 
            SelectAction="Expand"  
            PopulateOnDemand="true"/>
        
        </Nodes>
        
      </asp:TreeView>
      
      <br /><br />
      
      <asp:Label id="Message" runat="server"/>

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

<%@ Page Language="VB" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

  Sub PopulateNode(ByVal sender As Object, ByVal e As TreeNodeEventArgs)

    ' Call the appropriate method to populate a node at a particular level.
    Select Case e.Node.Depth

      Case 0
        ' Populate the first-level nodes.
        PopulateCategories(e.Node)

      Case 1
        ' Populate the second-level nodes.
        PopulateProducts(e.Node)

      Case Else
        ' Do nothing.

    End Select

  End Sub

  Sub PopulateCategories(ByVal node As TreeNode)

    ' Query for the product categories. These are the values
    ' for the second-level nodes.
    Dim ResultSet As DataSet = RunQuery("Select CategoryID, CategoryName From Categories")

    ' Create the second-level nodes.
    If ResultSet.Tables.Count > 0 Then

      ' Iterate through and create a new node for each row in the query results.
      ' Notice that the query results are stored in the table of the DataSet.
      Dim row As DataRow

      For Each row In ResultSet.Tables(0).Rows

        ' Create the new node. Notice that the CategoryId is stored in the Value property 
        ' of the node. This will make querying for items in a specific category easier when
        ' the third-level nodes are created. 
        Dim newNode As TreeNode = New TreeNode()
        Newnode.Text = row("CategoryName").ToString() 
        Newnode.Value = row("CategoryID").ToString()

        ' Set the PopulateOnDemand property to true so that the child nodes can be 
        ' dynamically populated.
        newNode.PopulateOnDemand = True

        ' Set additional properties for the node.
        newNode.SelectAction = TreeNodeSelectAction.Expand

        ' Add the new node to the ChildNodes collection of the parent node.
        node.ChildNodes.Add(newNode)

      Next

    End If

  End Sub

  Sub PopulateProducts(ByVal node As TreeNode)

    ' Query for the products of the current category. These are the values
    ' for the third-level nodes.
    Dim ResultSet As DataSet = RunQuery("Select ProductName From Products Where CategoryID=" & node.Value)

    ' Create the third-level nodes.
    If ResultSet.Tables.Count > 0 Then

      ' Iterate through and create a new node for each row in the query results.
      ' Notice that the query results are stored in the table of the DataSet.
      Dim row As DataRow

      For Each row In ResultSet.Tables(0).Rows

        ' Create the new node.
        Dim NewNode As TreeNode = New TreeNode(row("ProductName").ToString())

        ' Set the PopulateOnDemand property to false, because these are leaf nodes and
        ' do not need to be populated.
        NewNode.PopulateOnDemand = False

        ' Set additional properties for the node.
        NewNode.SelectAction = TreeNodeSelectAction.None

        ' Add the new node to the ChildNodes collection of the parent node.
        node.ChildNodes.Add(NewNode)

      Next

    End If

  End Sub

  Function RunQuery(ByVal QueryString As String) As DataSet

    ' Declare the connection string. This example uses Microsoft SQL Server 
    ' and connects to the Northwind sample database.
    Dim ConnectionString As String = "server=localhost;database=NorthWind;Integrated Security=SSPI"

    Dim DBConnection As SqlConnection = New SqlConnection(ConnectionString)
    Dim DBAdapter As SqlDataAdapter
    Dim ResultsDataSet As DataSet = New DataSet

    Try

      ' Run the query and create a DataSet.
      DBAdapter = New SqlDataAdapter(QueryString, DBConnection)
      DBAdapter.Fill(ResultsDataSet)

      ' Close the database connection.
      DBConnection.Close()

    Catch ex As Exception

      ' Close the database connection if it is still open.
      If DBConnection.State = ConnectionState.Open Then

        DBConnection.Close()

      End If

      Message.Text = "Unable to connect to the database."

    End Try

    Return ResultsDataSet

  End Function

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>TreeView PopulateNodesFromClient Example</title>
</head>
<body>
    <form id="form1" runat="server">
    
      <h3>TreeView PopulateNodesFromClient Example</h3>
    
      <asp:TreeView id="LinksTreeView"
        Font-Names= "Arial"
        ForeColor="Blue"
        EnableClientScript="true"
        PopulateNodesFromClient="true"  
        OnTreeNodePopulate="PopulateNode"
        runat="server">
         
        <Nodes>
        
          <asp:TreeNode Text="Inventory" 
            SelectAction="Expand"  
            PopulateOnDemand="true"/>
        
        </Nodes>
        
      </asp:TreeView>
      
      <br /><br />
      
      <asp:Label id="Message" runat="server"/>

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

Comentarios

En este tema:

Introducción

El TreeView control se usa para mostrar datos jerárquicos, como una tabla de contenido o directorio de archivos, en una estructura de árbol y admite las siguientes características:

  • Enlace de datos que permite enlazar los nodos del control a datos XML, tabulares o relacionales.

  • Navegación por el sitio a través de la integración con el SiteMapDataSource control .

  • Texto del nodo que se puede mostrar como texto sin formato o hipervínculos.

  • Acceso mediante programación al TreeView modelo de objetos para crear árboles, rellenar nodos, establecer propiedades, etc. dinámicamente.

  • Rellenado de nodos del lado cliente (en exploradores compatibles).

  • La capacidad de mostrar una casilla junto a cada nodo.

  • Apariencia personalizable a través de temas, imágenes definidas por el usuario y estilos.

    Nota

    El TreeView control está diseñado para usarse dentro de un UpdatePanel control solo cuando EnableClientScript se establece trueen . UpdatePanel Los controles se usan para actualizar las regiones seleccionadas de una página en lugar de actualizar toda la página con un postback. Para obtener más información, vea UpdatePanel Control Overview y Partial-Page Rendering Overview.

Nodos

El TreeView control se compone de nodos. Cada entrada del árbol se denomina nodo y se representa mediante un TreeNode objeto . Los tipos de nodo se definen de la siguiente manera:

  • Un nodo que contiene otros nodos se denomina nodo primario.

  • El nodo contenido por otro nodo se denomina nodo secundario.

  • Un nodo que no tiene elementos secundarios se denomina nodo hoja.

  • El nodo que no contiene 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 se determinan si un nodo es raíz, secundario o nodo hoja.

Aunque una estructura de árbol típica 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, como en una lista de categorías de productos.

Cada nodo tiene una Text propiedad y una Value propiedad . El valor de la Text propiedad se muestra en TreeView, mientras que la Value propiedad se usa para almacenar datos adicionales sobre el nodo, como los datos que se pasan al evento de postback asociado al nodo.

Un nodo puede estar en uno de los dos modos: el modo de selección y el 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 NavigateUrl propiedad del nodo en un valor distinto de una cadena vacía (""). Para colocar un nodo en modo de selección, establezca la NavigateUrl propiedad del 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.

Datos estáticos

El modelo de datos más sencillo del TreeView control es datos estáticos. Para mostrar datos estáticos mediante sintaxis declarativa, anida primero las etiquetas de apertura y cierre <Nodes> entre las etiquetas de apertura y cierre del TreeView control. A continuación, cree la estructura de árbol anidando <asp:TreeNode> elementos entre las etiquetas de apertura y cierre <Nodes> . Cada <asp:TreeNode> elemento representa un nodo del árbol y se asigna a un TreeNode objeto . Puede establecer las propiedades de cada nodo estableciendo los atributos de su <asp:TreeNode> elemento. Para crear nodos secundarios, anida elementos adicionales <asp:TreeNode> entre las etiquetas de apertura y cierre <asp:TreeNode> del nodo primario.

Enlace a datos

El TreeView control también se puede enlazar a los datos. Puede usar cualquiera de los dos métodos para enlazar el TreeView control al tipo de origen de datos adecuado:

  • El TreeView control puede usar cualquier control de origen de datos que implemente la IHierarchicalDataSource interfaz, como un XmlDataSource control o un SiteMapDataSource control . Para enlazar a un control de origen de datos, establezca la DataSourceID propiedad del TreeView control en el ID valor del control de origen de datos. El TreeView control se enlaza automáticamente al control de origen de datos especificado. Este es el método preferido para enlazar a datos.

  • El TreeView control también se puede enlazar a un XmlDocument objeto o a un DataSet objeto con relaciones. Para enlazar a uno de estos orígenes de datos, establezca la DataSource propiedad del TreeView control en el origen de datos y, a continuación, llame al DataBind método .

Cuando se enlaza a un origen de datos donde cada elemento de datos contiene varias propiedades (como un elemento XML con varios atributos), un nodo muestra el valor devuelto por el ToString método del elemento de datos de forma predeterminada. En el caso de un elemento XML, el nodo muestra el nombre del elemento, que muestra la estructura subyacente del árbol, pero no es muy útil en caso contrario. Puede enlazar un nodo a una propiedad de elemento de datos específica especificando enlaces de nodo de árbol mediante la DataBindings colección . La DataBindings colección contiene TreeNodeBinding objetos que definen la relación entre un elemento de datos y el nodo al que se enlaza. Puede especificar los criterios de enlace y la propiedad del elemento de datos que se mostrará en el nodo. Para obtener más información sobre los enlaces de nodo de árbol, vea TreeNodeBinding.

Importante

Un usuario malintencionado puede crear una solicitud de devolución de llamada y obtener datos para los nodos del control que el desarrollador de TreeView páginas no muestra. Por lo tanto, el origen de datos debe implementar la seguridad de los datos. No utilice la MaxDataBindDepth propiedad para ocultar los datos.

Rellenado dinámico de nodos

A veces, no resulta práctico definir estáticamente la estructura de árbol porque el origen de datos devuelve demasiados datos o porque los datos que se van a mostrar dependen de la información que obtenga en tiempo de ejecución. Por este motivo, el control admite el TreeView rellenado dinámico de nodos. Cuando la PopulateOnDemand propiedad de un nodo se establece trueen , ese nodo se rellena en tiempo de ejecución cuando se expande el nodo. Para rellenar un nodo dinámicamente, debe definir un método de control de eventos que contenga la lógica para rellenar un nodo para el TreeNodePopulate evento.

Los exploradores que admiten scripts de devolución de llamada también pueden aprovechar el rellenado de nodos del lado cliente. (Esto incluye Internet Explorer 5.5 y versiones posteriores y otros exploradores). El rellenado de nodos del lado cliente permite que el TreeView control rellene un nodo mediante el script de cliente cuando los usuarios expandan el nodo, sin necesidad de realizar un recorrido de ida y vuelta al servidor. Para obtener más información sobre el rellenado de nodos del lado cliente, vea PopulateNodesFromClient.

Personalización de la interfaz de usuario

Hay muchas maneras de personalizar la apariencia del TreeView control. En primer lugar, puede especificar un estilo diferente (como el tamaño de fuente y el color) para cada uno de los tipos de nodo.

Si usa hojas de estilos en cascada (CSS) para personalizar la apariencia del control, use estilos insertados o un archivo CSS independiente, pero no ambos. El uso de estilos insertados y un archivo CSS independiente podría provocar resultados inesperados. Para obtener más información sobre el uso de hojas de estilos con controles, vea Controles de servidor web y estilos CSS.

En la tabla siguiente se enumeran los estilos de nodo disponibles.

Propiedad de estilo node Descripción
HoverNodeStyle La configuración de estilo de un nodo cuando el puntero del mouse se coloca sobre él.
LeafNodeStyle La configuración de estilo de los nodos hoja.
NodeStyle La configuración de estilo predeterminada para un nodo.
ParentNodeStyle La configuración de estilo de los nodos primarios.
RootNodeStyle La configuración de estilo del nodo raíz.
SelectedNodeStyle La configuración de estilo de un nodo seleccionado.

También puede controlar el estilo de los nodos en profundidades específicas dentro del árbol mediante la LevelStyles colección . El primer estilo de la colección corresponde al estilo de los nodos en el primer nivel del árbol. El segundo estilo de la colección corresponde al estilo de los nodos en el segundo nivel del árbol, etc. Esto se usa con más frecuencia para generar menús de navegación de estilo de contenido en los que los nodos de una profundidad determinada deben tener la misma apariencia, independientemente de si tienen nodos secundarios.

Nota

Si se define un estilo para un determinado nivel de profundidad mediante la LevelStyles colección, ese estilo invalida cualquier configuración de estilo de nodo raíz, primario o hoja para los nodos en esa profundidad.

Otra manera de modificar la apariencia del control es personalizar las imágenes que se muestran en el TreeView control. Puede especificar su propio conjunto personalizado de imágenes para las distintas partes del control estableciendo las propiedades que se muestran en la tabla siguiente.

Propiedad Image Descripción
CollapseImageUrl Dirección URL de una imagen mostrada para el indicador de nodo contraíble. Esta imagen suele ser un signo menos (-).
ExpandImageUrl Dirección URL de una imagen que se muestra para el indicador de nodo expandible. Esta imagen suele ser un signo más (+).
LineImagesFolder Dirección URL de la carpeta que contiene las imágenes de línea usadas para conectar nodos primarios a nodos secundarios. La ShowLines propiedad también debe establecerse true en para que esta propiedad tenga un efecto.
NoExpandImageUrl Dirección URL de una imagen mostrada para el indicador de nodo no expandible.

Nota

No es necesario personalizar todas las propiedades de imagen. Si no se establece explícitamente una propiedad de imagen, se usa la imagen predeterminada integrada.

El TreeView control también permite mostrar una casilla junto a un nodo. Cuando la ShowCheckBoxes propiedad se establece en un valor distinto TreeNodeTypes.Nonede , se muestran casillas junto a los tipos de nodo especificados.

Nota

La ShowCheckBoxes propiedad se puede establecer en una combinación bit a bit de los TreeNodeTypes valores de miembro de enumeración.

Cada vez que la página se publica en el servidor, la CheckedNodes colección se rellena automáticamente con los nodos seleccionados. Cuando se muestran las casillas, puede usar el TreeNodeCheckChanged evento para ejecutar una rutina personalizada siempre que el estado de una casilla cambie entre publicaciones en el servidor.

Eventos

El TreeView control proporciona varios eventos contra los que puede programar. Esto le permite ejecutar una rutina personalizada cada vez que se produce un evento. En la tabla siguiente se enumeran los eventos admitidos por el TreeView control .

Evento Descripción
TreeNodeCheckChanged Se produce cuando las casillas del estado de cambio de TreeView control entre publicaciones en el servidor.
SelectedNodeChanged Se desencadena cuando se selecciona un nodo en el control TreeView.
TreeNodeExpanded Se desencadena cuando se expande un nodo en el control TreeView.
TreeNodeCollapsed Se desencadena cuando se contrae un nodo en el control TreeView.
TreeNodePopulate Aparece cuando un nodo con su propiedad PopulateOnDemand establecida en true se expande en el control TreeView.
TreeNodeDataBound Se desencadena cuando un elemento de datos se enlaza a un nodo en el control TreeView.

Desplazarse

El TreeView control no tiene desplazamiento integrado. Para agregar desplazamiento, coloque el TreeView control en un Panel control y agregue barras de desplazamiento al Panel control. Para obtener más información, vea Panel Web Server Control Overview.

Accesibilidad

Es posible que el marcado representado de forma predeterminada para este control no se ajuste a los estándares de accesibilidad. Para obtener más información sobre la compatibilidad de accesibilidad con este control, consulte ASP.NET Controles y accesibilidad.

Sintaxis declarativa

<asp:TreeView
    AccessKey="string"
    AutoGenerateDataBindings="True|False"
    BackColor="color name|#dddddd"
    BorderColor="color name|#dddddd"
    BorderStyle="NotSet|None|Dotted|Dashed|Solid|Double|Groove|Ridge|
        Inset|Outset"
    BorderWidth="size"
    CollapseImageToolTip="string"
    CollapseImageUrl="uri"
    CssClass="string"
    DataSource="string"
    DataSourceID="string"
    EnableClientScript="True|False"
    Enabled="True|False"
    EnableTheming="True|False"
    EnableViewState="True|False"
    ExpandDepth="string|FullyExpand|0|1|2|3|4|5|6|7|8|9|10|11|12|13|
        14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30"
    ExpandImageToolTip="string"
    ExpandImageUrl="uri"
    Font-Bold="True|False"
    Font-Italic="True|False"
    Font-Names="string"
    Font-Overline="True|False"
    Font-Size="string|Smaller|Larger|XX-Small|X-Small|Small|Medium|
       Large|X-Large|XX-Large"
    Font-Strikeout="True|False"
    Font-Underline="True|False"
    ForeColor="color name|#dddddd"
    Height="size"
    ID="string"
    ImageSet="Custom|XPFileExplorer|Msdn|WindowsHelp|Simple|Simple2|
        BulletedList|BulletedList2|BulletedList3|BulletedList4|
        Arrows|News|Contacts|Inbox|Events|Faq"
    LineImagesFolder="string"
    MaxDataBindDepth="integer"
    NodeIndent="integer"
    NodeWrap="True|False"
    NoExpandImageUrl="uri"
    OnDataBinding="DataBinding event handler"
    OnDataBound="DataBound event handler"
    OnDisposed="Disposed event handler"
    OnInit="Init event handler"
    OnLoad="Load event handler"
    OnPreRender="PreRender event handler"
    OnSelectedNodeChanged="SelectedNodeChanged event handler"
    OnTreeNodeCheckChanged="TreeNodeCheckChanged event handler"
    OnTreeNodeCollapsed="TreeNodeCollapsed event handler"
    OnTreeNodeDataBound="TreeNodeDataBound event handler"
    OnTreeNodeExpanded="TreeNodeExpanded event handler"
    OnTreeNodePopulate="TreeNodePopulate event handler"
    OnUnload="Unload event handler"
    PathSeparator="string"
    PopulateNodesFromClient="True|False"
    runat="server"
    ShowCheckBoxes="None|Root|Parent|Leaf|All"
    ShowExpandCollapse="True|False"
    ShowLines="True|False"
    SkinID="string"
    SkipLinkText="string"
    Style="string"
    TabIndex="integer"
    Target="string"
    ToolTip="string"
    Visible="True|False"
    Width="size"
>
        <DataBindings>
                <asp:TreeNodeBinding
                    DataMember="string"
                    Depth="integer"
                    FormatString="string"
                    ImageToolTip="string"
                    ImageToolTipField="string"
                    ImageUrl="uri"
                    ImageUrlField="string"
                    NavigateUrl="uri"
                    NavigateUrlField="string"
                    PopulateOnDemand="True|False"
                    SelectAction="Select|Expand|SelectExpand|None"
                    ShowCheckBox="string"
                    Target="string"
                    TargetField="string"
                    Text="string"
                    TextField="string"
                    ToolTip="string"
                    ToolTipField="string"
                    Value="string"
                    ValueField="string"
                />
        </DataBindings>
        <HoverNodeStyle />
        <LeafNodeStyle
            BackColor="color name|#dddddd"
            BorderColor="color name|#dddddd"
            BorderStyle="NotSet|None|Dotted|Dashed|Solid|Double|
                Groove|Ridge|Inset|Outset"
            BorderWidth="size"
            ChildNodesPadding="size"
            CssClass="string"
            Font-Bold="True|False"
            Font-Italic="True|False"
            Font-Names="string"
            Font-Overline="True|False"
            Font-Size="string|Smaller|Larger|XX-Small|X-Small|Small|
                Medium|Large|X-Large|XX-Large"
            Font-Strikeout="True|False"
            Font-Underline="True|False"
            ForeColor="color name|#dddddd"
            Height="size"
            HorizontalPadding="size"
            ImageUrl="uri"
            NodeSpacing="size"
            OnDisposed="Disposed event handler"
            VerticalPadding="size"
            Width="size"
        />
        <LevelStyles>
                <asp:TreeNodeStyle
                    BackColor="color name|#dddddd"
                    BorderColor="color name|#dddddd"
                    BorderStyle="NotSet|None|Dotted|Dashed|Solid|
                        Double|Groove|Ridge|Inset|Outset"
                    BorderWidth="size"
                    ChildNodesPadding="size"
                    CssClass="string"
                    Font-Bold="True|False"
                    Font-Italic="True|False"
                    Font-Names="string"
                    Font-Overline="True|False"
                    Font-Size="string|Smaller|Larger|XX-Small|
                        X-Small|Small|Medium|Large|X-Large|XX-Large"
                    Font-Strikeout="True|False"
                    Font-Underline="True|False"
                    ForeColor="color name|#dddddd"
                    Height="size"
                    HorizontalPadding="size"
                    ImageUrl="uri"
                    NodeSpacing="size"
                    OnDisposed="Disposed event handler"
                    VerticalPadding="size"
                    Width="size"
                />
        </LevelStyles>
        <Nodes>
                <asp:TreeNode
                    Checked="True|False"
                    Expanded="string"
                    ImageToolTip="string"
                    ImageUrl="uri"
                    NavigateUrl="uri"
                    PopulateOnDemand="True|False"
                    SelectAction="Select|Expand|SelectExpand|None"
                    Selected="True|False"
                    ShowCheckBox="string"
                    Target="string"
                    Text="string"
                    ToolTip="string"
                    Value="string"
>
                </asp:TreeNode>
        </Nodes>
        <NodeStyle
            BackColor="color name|#dddddd"
            BorderColor="color name|#dddddd"
            BorderStyle="NotSet|None|Dotted|Dashed|Solid|Double|
                Groove|Ridge|Inset|Outset"
            BorderWidth="size"
            ChildNodesPadding="size"
            CssClass="string"
            Font-Bold="True|False"
            Font-Italic="True|False"
            Font-Names="string"
            Font-Overline="True|False"
            Font-Size="string|Smaller|Larger|XX-Small|X-Small|Small|
                Medium|Large|X-Large|XX-Large"
            Font-Strikeout="True|False"
            Font-Underline="True|False"
            ForeColor="color name|#dddddd"
            Height="size"
            HorizontalPadding="size"
            ImageUrl="uri"
            NodeSpacing="size"
            OnDisposed="Disposed event handler"
            VerticalPadding="size"
            Width="size"
        />
        <ParentNodeStyle
            BackColor="color name|#dddddd"
            BorderColor="color name|#dddddd"
            BorderStyle="NotSet|None|Dotted|Dashed|Solid|Double|
                Groove|Ridge|Inset|Outset"
            BorderWidth="size"
            ChildNodesPadding="size"
            CssClass="string"
            Font-Bold="True|False"
            Font-Italic="True|False"
            Font-Names="string"
            Font-Overline="True|False"
            Font-Size="string|Smaller|Larger|XX-Small|X-Small|Small|
                Medium|Large|X-Large|XX-Large"
            Font-Strikeout="True|False"
            Font-Underline="True|False"
            ForeColor="color name|#dddddd"
            Height="size"
            HorizontalPadding="size"
            ImageUrl="uri"
            NodeSpacing="size"
            OnDisposed="Disposed event handler"
            VerticalPadding="size"
            Width="size"
        />
        <RootNodeStyle
            BackColor="color name|#dddddd"
            BorderColor="color name|#dddddd"
            BorderStyle="NotSet|None|Dotted|Dashed|Solid|Double|
                Groove|Ridge|Inset|Outset"
            BorderWidth="size"
            ChildNodesPadding="size"
            CssClass="string"
            Font-Bold="True|False"
            Font-Italic="True|False"
            Font-Names="string"
            Font-Overline="True|False"
            Font-Size="string|Smaller|Larger|XX-Small|X-Small|Small|
                Medium|Large|X-Large|XX-Large"
            Font-Strikeout="True|False"
            Font-Underline="True|False"
            ForeColor="color name|#dddddd"
            Height="size"
            HorizontalPadding="size"
            ImageUrl="uri"
            NodeSpacing="size"
            OnDisposed="Disposed event handler"
            VerticalPadding="size"
            Width="size"
        />
        <SelectedNodeStyle
            BackColor="color name|#dddddd"
            BorderColor="color name|#dddddd"
            BorderStyle="NotSet|None|Dotted|Dashed|Solid|Double|
                Groove|Ridge|Inset|Outset"
            BorderWidth="size"
            ChildNodesPadding="size"
            CssClass="string"
            Font-Bold="True|False"
            Font-Italic="True|False"
            Font-Names="string"
            Font-Overline="True|False"
            Font-Size="string|Smaller|Larger|XX-Small|X-Small|Small|
                Medium|Large|X-Large|XX-Large"
            Font-Strikeout="True|False"
            Font-Underline="True|False"
            ForeColor="color name|#dddddd"
            Height="size"
            HorizontalPadding="size"
            ImageUrl="uri"
            NodeSpacing="size"
            OnDisposed="Disposed event handler"
            VerticalPadding="size"
            Width="size"
        />
</asp:TreeView>

Constructores

TreeView()

Inicializa una nueva instancia de la clase TreeView.

Propiedades

AccessKey

Obtiene o establece la clave de acceso que permite navegar rápidamente al control de servidor web.

(Heredado de WebControl)
Adapter

Obtiene el adaptador específico del explorador para el control.

(Heredado de Control)
AppRelativeTemplateSourceDirectory

Obtiene o establece el directorio virtual relativo a la aplicación del objeto Page o el objeto UserControl que contiene este control.

(Heredado de Control)
Attributes

Obtiene la colección de atributos arbitrarios (sólo para su representación) que no corresponden a propiedades del control.

(Heredado de WebControl)
AutoGenerateDataBindings

Obtiene o establece un valor que indica si el control TreeView genera automáticamente los enlaces del nodo de árbol.

BackColor

Obtiene o establece el color de fondo del control de servidor web.

(Heredado de WebControl)
BindingContainer

Obtiene el control que contiene el enlace de datos de este control.

(Heredado de Control)
BorderColor

Obtiene o establece el color de borde del control Web.

(Heredado de WebControl)
BorderStyle

Obtiene o establece el estilo del borde del control de servidor web.

(Heredado de WebControl)
BorderWidth

Obtiene o establece el ancho del borde del control de servidor web.

(Heredado de WebControl)
CheckedNodes

Obtiene una colección de objetos TreeNode que representan los nodos del control TreeView que muestra una casilla activada.

ChildControlsCreated

Obtiene un valor que indica si se han creado controles secundarios del control de servidor.

(Heredado de Control)
ClientID

Obtiene el id. de control para marcado HTML que se genera por ASP.NET.

(Heredado de Control)
ClientIDMode

Obtiene o establece el algoritmo que se utiliza para generar el valor de la propiedad ClientID.

(Heredado de Control)
ClientIDSeparator

Obtiene un valor de carácter que representa el carácter separado utilizado en la propiedad ClientID.

(Heredado de Control)
CollapseImageToolTip

Obtiene o establece la información sobre herramientas para la imagen que se muestra para el indicador de nodo contraíble.

CollapseImageUrl

Obtiene o establece la dirección URL a una imagen personalizada para el indicador de nodo contraíble.

Context

Obtiene el objeto HttpContext asociado al control de servidor para la solicitud Web actual.

(Heredado de Control)
Controls

Obtiene un objeto ControlCollection que representa los controles secundarios de un control de servidor especificado en la jerarquía de la interfaz de usuario.

(Heredado de Control)
ControlStyle

Obtiene el estilo del control de servidor web. Esta propiedad la usan principalmente los programadores de controles.

(Heredado de WebControl)
ControlStyleCreated

Obtiene un valor que indica si se ha creado un objeto Style para la propiedad ControlStyle. Esta propiedad la usan principalmente los programadores de controles.

(Heredado de WebControl)
CssClass

Obtiene o establece la clase hoja de estilos en cascada (CSS) presentada por el control de servidor web en el cliente.

(Heredado de WebControl)
DataBindings

Obtiene una colección de objetos TreeNodeBinding que definen la relación entre un elemento de datos y el nodo al que se enlaza.

DataItemContainer

Obtiene una referencia al contenedor de nomenclatura si este implementa IDataItemContainer.

(Heredado de Control)
DataKeysContainer

Obtiene una referencia al contenedor de nomenclatura si este implementa IDataKeysControl.

(Heredado de Control)
DataSource

Obtiene o establece el objeto del que el control enlazado a datos recupera su lista de elementos de datos.

(Heredado de BaseDataBoundControl)
DataSourceID

Obtiene o establece el identificador del control desde el que el control enlazado a datos recupera su lista de elementos de datos.

(Heredado de HierarchicalDataBoundControl)
DesignMode

Obtiene un valor que indica si se está utilizando un control en una superficie de diseño.

(Heredado de Control)
EnableClientScript

Obtiene o establece un valor que indica si el control TreeView representa script de cliente para controlar los eventos de expansión y contracción.

Enabled

Obtiene o establece un valor que indica si el control de servidor web está habilitado.

(Heredado de WebControl)
EnableTheming

Obtiene o establece un valor que indica si los temas se aplican a este control.

(Heredado de WebControl)
EnableViewState

Obtiene o establece un valor que indica si el control de servidor conserva su estado de vista, así como el estado de vista de los controles secundarios que contiene, al cliente solicitante.

(Heredado de Control)
Events

Obtiene una lista de delegados de controladores de eventos del control. Esta propiedad es de sólo lectura.

(Heredado de Control)
ExpandDepth

Obtiene o establece el número de niveles que se expanden cuando se muestra un control TreeView por primera vez.

ExpandImageToolTip

Obtiene o establece la información sobre herramientas para la imagen que se muestra para el indicador de nodo expansible.

ExpandImageUrl

Obtiene o establece la dirección URL a una imagen personalizada para el indicador de nodo expansible.

Font

Obtiene las propiedades de fuente asociadas al control de servidor web.

(Heredado de WebControl)
ForeColor

Obtiene o establece el color de primer plano (normalmente el color del texto) del control de servidor web.

(Heredado de WebControl)
HasAttributes

Obtiene un valor que indica si el control tiene establecido algún atributo.

(Heredado de WebControl)
HasChildViewState

Obtiene un valor que indica si los controles secundarios del control de servidor actual tienen guardada alguna configuración del estado de vista.

(Heredado de Control)
Height

Obtiene o establece el alto del control de servidor Web.

(Heredado de WebControl)
HoverNodeStyle

Obtiene una referencia al objeto TreeNodeStyle que permite establecer el aspecto de un nodo cuando el puntero del mouse se coloca sobre él.

ID

Obtiene o establece el identificador de programación asignado al control de servidor.

(Heredado de Control)
IdSeparator

Obtiene el carácter utilizado para separar los identificadores de control.

(Heredado de Control)
ImageSet

Obtiene o establece el grupo de imágenes a utilizar para el control TreeView.

Initialized

Obtiene un valor que indica si el control enlazado a datos está inicializado.

(Heredado de BaseDataBoundControl)
IsBoundUsingDataSourceID

Obtiene un valor que indica si la propiedad DataSourceID está establecida.

(Heredado de BaseDataBoundControl)
IsChildControlStateCleared

Obtiene un valor que indica si los controles que se encuentran en este control tienen estado de control.

(Heredado de Control)
IsDataBindingAutomatic

Obtiene un valor que indica si el enlace de datos es automático.

(Heredado de BaseDataBoundControl)
IsEnabled

Obtiene un valor que indica si está habilitado el control.

(Heredado de WebControl)
IsTrackingViewState

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

(Heredado de Control)
IsUsingModelBinders

Cuando se implementa en una clase derivada, obtiene un valor que indica si el control está usando enlazadores de modelos.

(Heredado de BaseDataBoundControl)
IsViewStateEnabled

Obtiene un valor que indica si el estado de vista está habilitado para este control.

(Heredado de Control)
LeafNodeStyle

Obtiene una referencia al objeto TreeNodeStyle que permite establecer el aspecto de los nodos de hoja.

LevelStyles

Obtiene una colección de objetos Style que representan estilos de nodo en los niveles individuales del árbol.

LineImagesFolder

Obtiene o establece la ruta de acceso a una carpeta que contiene las imágenes de la línea que se utilizan para conectar los nodos secundarios a los nodos primarios.

LoadViewStateByID

Obtiene un valor que indica si el control participa en la carga de su estado de vista mediante ID en lugar de índice.

(Heredado de Control)
MaxDataBindDepth

Obtiene o establece el número máximo de niveles del árbol a enlazar al control TreeView.

NamingContainer

Obtiene una referencia al contenedor de nomenclatura del control de servidor, que crea un espacio de nombres único para diferenciar los distintos controles de servidor que tienen el mismo valor para la propiedad ID.

(Heredado de Control)
NodeIndent

Obtiene o establece la cantidad de sangría (en píxeles) para los nodos secundarios del control TreeView.

Nodes

Obtiene una colección de objetos TreeNode que representa los nodos raíz del control TreeView.

NodeStyle

Obtiene una referencia al objeto TreeNodeStyle que permite establecer la apariencia predeterminada de los nodos del control TreeView.

NodeWrap

Obtiene o establece un valor que indica si el texto se ajusta en un nodo cuando el nodo se queda sin espacio.

NoExpandImageUrl

Obtiene o establece la dirección URL a una imagen personalizada para el indicador de nodo no expansible.

Page

Obtiene una referencia a la instancia Page que contiene el control de servidor.

(Heredado de Control)
Parent

Obtiene una referencia al control principal del control de servidor en la jerarquía de controles de página.

(Heredado de Control)
ParentNodeStyle

Obtiene una referencia al objeto TreeNodeStyle que permite establecer la apariencia de los nodos primarios del control TreeView.

PathSeparator

Obtiene o establece el carácter que se utiliza para delimitar los valores de nodo especificados por la propiedad ValuePath.

PopulateNodesFromClient

Obtiene o establece un valor que indica si los datos de nodo se rellenan a demanda del cliente.

RenderingCompatibility

Obtiene o establece un valor que especifica la versión de ASP.NET compatible con los elementos HTML representados.

(Heredado de Control)
RequiresDataBinding

Obtiene o establece un valor que indica si se debe llamar al método DataBind().

(Heredado de BaseDataBoundControl)
RootNodeStyle

Obtiene una referencia al objeto TreeNodeStyle que permite establecer la apariencia del nodo raíz del control TreeView.

SelectedNode

Obtiene un objeto TreeNode que representa el nodo seleccionado del control TreeView.

SelectedNodeStyle

Obtiene el objeto TreeNodeStyle que controla el aspecto del nodo seleccionado en el control TreeView.

SelectedValue

Obtiene el valor del nodo seleccionado.

ShowCheckBoxes

Obtiene o establece un valor que indica qué tipos de nodo mostrarán una casilla en el control TreeView.

ShowExpandCollapse

Obtiene o establece un valor que indica si se muestran los indicadores de nodo de expansión.

ShowLines

Obtiene o establece un valor que indica se muestran si las líneas que conectan los nodos secundarios a los nodos primarios.

Site

Obtiene información sobre el contenedor en que se encuentra el control actual cuando se representa en una superficie de diseño.

(Heredado de Control)
SkinID

Obtiene o establece la máscara que se aplica al control.

(Heredado de WebControl)
SkipLinkText

Obtiene o establece un valor que se utiliza para representar texto alternativo para que los lectores de pantalla omitan el contenido del control.

Style

Obtiene una colección de atributos de texto que se representan como atributo de estilo en la etiqueta externa del control de servidor web.

(Heredado de WebControl)
SupportsDisabledAttribute

Obtiene un valor que indica si el control debe establecer en "disabled" el atributo disabled del elemento HTML representado cuando el valor de la propiedad IsEnabled del control es false.

(Heredado de BaseDataBoundControl)
TabIndex

Obtiene o establece el índice de tabulación del control de servidor web.

(Heredado de WebControl)
TagKey

Obtiene el valor HtmlTextWriterTag del control TreeView.

TagName

Obtiene el nombre de la etiqueta del control. Esta propiedad la usan principalmente los programadores de controles.

(Heredado de WebControl)
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.

TemplateControl

Obtiene o establece una referencia a la plantilla que contiene este control.

(Heredado de Control)
TemplateSourceDirectory

Obtiene el directorio virtual de Page o UserControl que contiene el control de servidor actual.

(Heredado de Control)
ToolTip

Obtiene o establece el texto que se muestra cuando el puntero del mouse se desplaza sobre el control de servidor web.

(Heredado de WebControl)
UniqueID

Obtiene el identificador único calificado jerárquicamente para el control de servidor.

(Heredado de Control)
ValidateRequestMode

Obtiene o establece un valor que indica si el control comprueba la entrada del cliente desde el explorador para valores potencialmente peligrosos.

(Heredado de Control)
ViewState

Obtiene un diccionario con información de estado que le permite guardar y restaurar el estado de vista de un control de servidor en las distintas solicitudes de la misma página.

(Heredado de Control)
ViewStateIgnoresCase

Obtiene un valor que indica si el objeto StateBag no distingue mayúsculas de minúsculas.

(Heredado de Control)
ViewStateMode

Obtiene o establece el modo del estado de vista de este control.

(Heredado de Control)
Visible

Obtiene o establece un valor que indica si el control se debe representar como interfaz de usuario en la página.

Width

Obtiene o establece el ancho del control de servidor web.

(Heredado de WebControl)

Métodos

AddAttributesToRender(HtmlTextWriter)

Agrega atributos y estilos HTML que se deben representar en el control HtmlTextWriter especificado.

AddedControl(Control, Int32)

Se llama después de agregar un control secundario a la colección Controls del objeto Control.

(Heredado de Control)
AddParsedSubObject(Object)

Notifica al control de servidor que se analizó un elemento, ya sea XML o HTML, y agrega el elemento al objeto ControlCollection del control del servidor.

(Heredado de Control)
ApplyStyle(Style)

Copia en el control Web todos los elementos no vacíos del estilo especificado, sobrescribiendo los elementos de estilo existentes del mismo. Este método lo usan principalmente los programadores de controles.

(Heredado de WebControl)
ApplyStyleSheetSkin(Page)

Aplica al control las propiedades de estilo definidas en la hoja de estilos de la página.

(Heredado de Control)
BeginRenderTracing(TextWriter, Object)

Comienza el seguimiento en tiempo de diseño de los datos de representación.

(Heredado de Control)
BuildProfileTree(String, Boolean)

Recopila información sobre el control de servidor y la pasa a la propiedad Trace para que se muestre cuando está habilitada la traza de la página.

(Heredado de Control)
ClearCachedClientID()

Establece en null el valor de ClientID almacenado en caché.

(Heredado de Control)
ClearChildControlState()

Elimina la información sobre el estado de control de los controles secundarios del control de servidor.

(Heredado de Control)
ClearChildState()

Elimina la información sobre el estado de vista y el estado de control de los controles secundarios del control de servidor.

(Heredado de Control)
ClearChildViewState()

Elimina la información sobre el estado de vista de todos los controles secundarios del control de servidor.

(Heredado de Control)
ClearEffectiveClientIDMode()

Establece la propiedad ClientIDMode de la instancia del control actual y de cualquier control secundario en Inherit.

(Heredado de Control)
CollapseAll()

Cierra cada nodo en el árbol.

ConfirmInitState()

Establece el estado inicializado del control enlazado a datos.

(Heredado de BaseDataBoundControl)
CopyBaseAttributes(WebControl)

Copia las propiedades no encapsuladas por el objeto Style del control de servidor web especificado al control de servidor web desde el que se efectúa la llamada al método. Este método lo usan principalmente los desarrolladores de controles.

(Heredado de WebControl)
CreateChildControls()

Lo llama el marco de páginas ASP.NET para indicar a los controles de servidor que usan la implementación basada en composición que creen los controles secundarios que contengan como forma de preparar la devolución o representación de los datos.

(Heredado de Control)
CreateControlCollection()

Crea una colección para almacenar controles secundarios.

CreateControlStyle()

Crea el objeto de estilo que utiliza la clase WebControl de forma interna para implementar todas las propiedades relacionadas con el estilo. Este método lo usan principalmente los desarrolladores de controles.

(Heredado de WebControl)
CreateNode()

Devuelve una nueva instancia de la clase TreeNode. El método CreateNode() es un método del asistente.

DataBind()

Llama al método DataBind() de la clase base.

DataBind(Boolean)

Enlaza un origen de datos al control de servidor que se ha invocado y a todos sus controles secundarios con una opción para generar el evento DataBinding.

(Heredado de Control)
DataBindChildren()

Enlaza un origen de datos a los controles secundarios del control de servidor.

(Heredado de Control)
Dispose()

Habilita un control de servidor para que realice la limpieza final antes de que se libere de la memoria.

(Heredado de Control)
EndRenderTracing(TextWriter, Object)

Finaliza el seguimiento en tiempo de diseño de los datos de representación.

(Heredado de Control)
EnsureChildControls()

Determina si el control de servidor contiene controles secundarios. Si no tiene controles secundarios, los crea.

(Heredado de Control)
EnsureDataBound()

Llama al método DataBind() si se establece la propiedad DataSourceID y el control enlazado a datos está marcado de forma que requiera el enlace.

(Heredado de BaseDataBoundControl)
EnsureID()

Crea un identificador para controles que no tiene un identificador asignado.

(Heredado de Control)
Equals(Object)

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

(Heredado de Object)
ExpandAll()

Abre cada nodo del árbol.

FindControl(String)

Busca un control de servidor con el parámetro id especificado en el contenedor de nomenclatura actual.

(Heredado de Control)
FindControl(String, Int32)

Busca el contenedor de nomenclatura actual para un control de servidor con el id especificado y un entero, que se especifica en el parámetro pathOffset, que ayuda a realizar la búsqueda. Esta versión del método FindControl no se debe reemplazar.

(Heredado de Control)
FindNode(String)

Recupera el objeto TreeNode del control TreeView en la ruta de acceso del valor especificado.

Focus()

Establece el foco de entrada en un control.

(Heredado de Control)
GetCallbackResult()

Devuelve el resultado de un evento de devolución de llamada que tiene como destino un control.

GetData(String)

Recupera un objeto HierarchicalDataSourceView que el control enlazado a datos usa para llevar a cabo operaciones de datos.

(Heredado de HierarchicalDataBoundControl)
GetDataSource()

Recupera la interfaz IHierarchicalDataSource a la que está asociado el control enlazado a datos, si existe.

(Heredado de HierarchicalDataBoundControl)
GetDesignModeState()

Obtiene datos en tiempo de diseño para un control.

(Heredado de Control)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetRouteUrl(Object)

Obtiene la dirección URL que corresponde a un conjunto de parámetros de ruta.

(Heredado de Control)
GetRouteUrl(RouteValueDictionary)

Obtiene la dirección URL que corresponde a un conjunto de parámetros de ruta.

(Heredado de Control)
GetRouteUrl(String, Object)

Obtiene la dirección URL que corresponde a un conjunto de parámetros de ruta y un nombre de ruta.

(Heredado de Control)
GetRouteUrl(String, RouteValueDictionary)

Obtiene la dirección URL que corresponde a un conjunto de parámetros de ruta y un nombre de ruta.

(Heredado de Control)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
GetUniqueIDRelativeTo(Control)

Devuelve la parte correspondiente al prefijo de la propiedad UniqueID del control especificado.

(Heredado de Control)
HasControls()

Determina si el control de servidor contiene controles secundarios.

(Heredado de Control)
HasEvents()

Devuelve un valor que indica si se registran eventos para el control o los controles secundarios.

(Heredado de Control)
IsLiteralContent()

Determina si el control de servidor alberga únicamente contenido literal.

(Heredado de Control)
LoadControlState(Object)

Restaura información de estado de control de una solicitud de página anterior guardada por el método SaveControlState().

(Heredado de Control)
LoadPostData(String, NameValueCollection)

Procesa los datos de postback del control TreeView.

LoadViewState(Object)

Carga el estado de vista guardado previamente del control TreeView.

MapPathSecure(String)

Recupera la ruta de acceso física a la que se asigna una ruta de acceso virtual, absoluta o relativa.

(Heredado de Control)
MarkAsDataBound()

Establece el estado del control en estado de vista como enlazado correctamente a los datos.

(Heredado de HierarchicalDataBoundControl)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
MergeStyle(Style)

Copia en el control Web todos los elementos no vacíos del estilo especificado, pero no sobrescribe los elementos de estilo existentes en el mismo. Este método lo usan principalmente los desarrolladores de controles.

(Heredado de WebControl)
OnBubbleEvent(Object, EventArgs)

Determina si el evento del control de servidor se pasa a la jerarquía de control de servidor de la interfaz de usuario (UI) de la página.

(Heredado de Control)
OnDataBinding(EventArgs)

Genera el evento DataBinding.

(Heredado de Control)
OnDataBound(EventArgs)

Genera el evento DataBound.

(Heredado de BaseDataBoundControl)
OnDataPropertyChanged()

Se le llama cuando cambia una de las propiedades de identificación del origen de datos base, para volver a enlazar el control enlazado a datos con sus datos.

(Heredado de HierarchicalDataBoundControl)
OnDataSourceChanged(Object, EventArgs)

Se le llama cuando la instancia de IHierarchicalDataSource con la que funciona el control enlazado a datos provoca el evento DataSourceChanged.

(Heredado de HierarchicalDataBoundControl)
OnInit(EventArgs)

Genera el evento Init.

OnLoad(EventArgs)

Controla el evento Load.

(Heredado de HierarchicalDataBoundControl)
OnPagePreLoad(Object, EventArgs)

Establece el estado inicializado del control enlazado a datos antes de cargar el control.

(Heredado de HierarchicalDataBoundControl)
OnPreRender(EventArgs)

Genera el evento PreRender.

OnSelectedNodeChanged(EventArgs)

Provoca el evento SelectedNodeChanged del control TreeView.

OnTreeNodeCheckChanged(TreeNodeEventArgs)

Provoca el evento TreeNodeCheckChanged del control TreeView.

OnTreeNodeCollapsed(TreeNodeEventArgs)

Provoca el evento TreeNodeCollapsed del control TreeView.

OnTreeNodeDataBound(TreeNodeEventArgs)

Provoca el evento TreeNodeDataBound del control TreeView.

OnTreeNodeExpanded(TreeNodeEventArgs)

Provoca el evento TreeNodeExpanded del control TreeView.

OnTreeNodePopulate(TreeNodeEventArgs)

Provoca el evento TreeNodePopulate del control TreeView.

OnUnload(EventArgs)

Genera el evento Unload.

(Heredado de Control)
OpenFile(String)

Obtiene un objeto Stream utilizado para leer un archivo.

(Heredado de Control)
PerformDataBinding()

Crea todos los nodos basándose en el origen de datos.

PerformSelect()

Recupera los datos del origen de datos asociado.

(Heredado de HierarchicalDataBoundControl)
RaiseBubbleEvent(Object, EventArgs)

Asigna los orígenes del evento y su información al control principal del control.

(Heredado de Control)
RaiseCallbackEvent(String)

Genera el evento de devolución de llamada con los argumentos especificados.

RaisePostBackEvent(String)

Permite que el control TreeView procese un evento provocado al devolver un formulario al servidor. El método RaisePostBackEvent(String) es un método del asistente para el método ICallbackEventHandler.RaiseCallbackEvent(String).

RaisePostDataChangedEvent()

Indica al control TreeView que debe notificar a la aplicación ASP.NET que el estado del control ha cambiado.

RemovedControl(Control)

Se llama después de quitar un control secundario de la colección Controls del objeto Control.

(Heredado de Control)
Render(HtmlTextWriter)

Representa el control en el sistema de escritura HTML especificado.

(Heredado de WebControl)
RenderBeginTag(HtmlTextWriter)

Representa la etiqueta HTML de apertura del control en el sistema de escritura especificado.

RenderChildren(HtmlTextWriter)

Envía el contenido de los elementos secundarios de un control de servidor a un objeto HtmlTextWriter especificado, que escribe el contenido que se va a representar en el cliente.

(Heredado de Control)
RenderContents(HtmlTextWriter)

Representa los nodos del control TreeView.

RenderControl(HtmlTextWriter)

Envía el contenido de control del servidor a un objeto HtmlTextWriter proporcionado y almacena información de seguimiento sobre el control si está habilitado el seguimiento.

(Heredado de Control)
RenderControl(HtmlTextWriter, ControlAdapter)

Coloca el contenido de un control de servidor en un objeto HtmlTextWriter proporcionado, utilizando un objeto ControlAdapter proporcionado.

(Heredado de Control)
RenderEndTag(HtmlTextWriter)

Representa la etiqueta HTML de cierre del control en el sistema de escritura especificado.

ResolveAdapter()

Obtiene el adaptador de controles que se encarga de representar el control especificado.

(Heredado de Control)
ResolveClientUrl(String)

Obtiene una dirección URL que el explorador puede utilizar.

(Heredado de Control)
ResolveUrl(String)

Convierte una dirección URL en una que el cliente solicitante pueda utilizar.

(Heredado de Control)
SaveControlState()

Guarda los cambios de estado del control de servidor que se produjeron desde la hora en que la página volvió a publicarse en el servidor.

(Heredado de Control)
SaveViewState()

Guarda el estado del control TreeView.

SetDesignModeState(IDictionary)

Establece los datos en tiempo de diseño para un control.

(Heredado de Control)
SetNodeDataBound(TreeNode, Boolean)

Permite a una clase derivada establecer si el control TreeNode especificado está enlazado a datos.

SetNodeDataItem(TreeNode, Object)

Permite que una clase derivada establezca el elemento de datos para el control TreeNode especificado.

SetNodeDataPath(TreeNode, String)

Permite que una clase derivada establezca la ruta de datos para el control TreeNode especificado.

SetRenderMethodDelegate(RenderMethod)

Asigna un delegado de controlador de eventos para representar el control de servidor y su contenido en el control principal.

(Heredado de Control)
SetTraceData(Object, Object)

Establece datos de seguimiento para el seguimiento en tiempo de diseño de los datos de representación, para lo que usa la clave y el valor de los datos de seguimiento.

(Heredado de Control)
SetTraceData(Object, Object, Object)

Establece datos de seguimiento para el seguimiento en tiempo de diseño de los datos de representación, para lo que usa el objeto del que se ha realizado seguimiento, así como la clave y el valor de los datos de seguimiento.

(Heredado de Control)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)
TrackViewState()

Efectúa el seguimiento de los cambios en el estado de vista del control TreeView para poder almacenarlos en el objeto StateBag del control. Se obtiene acceso al objeto StateBag a través de la propiedad ViewState.

ValidateDataSource(Object)

Comprueba que el objeto al que se enlaza un control enlazado a datos es compatible.

(Heredado de HierarchicalDataBoundControl)

Eventos

DataBinding

Se produce cuando el control de servidor se enlaza a un origen de datos.

(Heredado de Control)
DataBound

Se produce después de que el control de servidor se enlaza a un origen de datos.

(Heredado de BaseDataBoundControl)
Disposed

Se produce cuando un control de servidor se libera de la memoria, lo que constituye la última fase del período de duración de un control de servidor cuando se solicita una página ASP.NET.

(Heredado de Control)
Init

Tiene lugar al inicializar el control de servidor, que es el primer paso en su ciclo de vida.

(Heredado de Control)
Load

Se produce cuando el control de servidor se carga en el objeto Page.

(Heredado de Control)
PreRender

Se produce una vez que se carga el objeto Control, pero antes de su representación.

(Heredado de Control)
SelectedNodeChanged

Se desencadena cuando se selecciona un nodo en el control TreeView.

TreeNodeCheckChanged

Se produce cuando una casilla del control TreeView cambia de estado entre cada envío al servidor.

TreeNodeCollapsed

Se desencadena cuando se contrae un nodo en el control TreeView.

TreeNodeDataBound

Se desencadena cuando un elemento de datos se enlaza a un nodo en el control TreeView.

TreeNodeExpanded

Se desencadena cuando se expande un nodo en el control TreeView.

TreeNodePopulate

Aparece cuando un nodo con su propiedad PopulateOnDemand establecida en true se expande en el control TreeView.

Unload

Se produce cuando el control de servidor se descarga de la memoria.

(Heredado de Control)

Implementaciones de interfaz explícitas

IAttributeAccessor.GetAttribute(String)

Obtiene un atributo del control Web con el nombre especificado.

(Heredado de WebControl)
IAttributeAccessor.SetAttribute(String, String)

Establece un atributo del control Web con el nombre y el valor especificados.

(Heredado de WebControl)
ICallbackEventHandler.GetCallbackResult()

Devuelve el resultado de un evento de devolución de llamada que tiene como destino un control.

ICallbackEventHandler.RaiseCallbackEvent(String)

Genera el evento de devolución de llamada con los argumentos especificados.

IControlBuilderAccessor.ControlBuilder

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

(Heredado de Control)
IControlDesignerAccessor.GetDesignModeState()

Para obtener una descripción de este miembro, vea GetDesignModeState().

(Heredado de Control)
IControlDesignerAccessor.SetDesignModeState(IDictionary)

Para obtener una descripción de este miembro, vea SetDesignModeState(IDictionary).

(Heredado de Control)
IControlDesignerAccessor.SetOwnerControl(Control)

Para obtener una descripción de este miembro, vea SetOwnerControl(Control).

(Heredado de Control)
IControlDesignerAccessor.UserData

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

(Heredado de Control)
IDataBindingsAccessor.DataBindings

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

(Heredado de Control)
IDataBindingsAccessor.HasDataBindings

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

(Heredado de Control)
IExpressionsAccessor.Expressions

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

(Heredado de Control)
IExpressionsAccessor.HasExpressions

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

(Heredado de Control)
IParserAccessor.AddParsedSubObject(Object)

Para obtener una descripción de este miembro, vea AddParsedSubObject(Object).

(Heredado de Control)
IPostBackDataHandler.LoadPostData(String, NameValueCollection)

Procesa los datos de postback del control TreeView.

IPostBackDataHandler.RaisePostDataChangedEvent()

Indica al control TreeView que debe notificar a la aplicación ASP.NET que el estado del control ha cambiado.

IPostBackEventHandler.RaisePostBackEvent(String)

Permite que el control TreeView procese un evento provocado al devolver un formulario al servidor.

Métodos de extensión

EnablePersistedSelection(BaseDataBoundControl)
Obsoletos.

Habilita la selección para que persista en controles de datos que admiten selección y paginación.

FindDataSourceControl(Control)

Devuelve el origen de datos que está asociado al control de datos del control especificado.

FindFieldTemplate(Control, String)

Devuelve la plantilla de campo para la columna especificada en el contenedor de nomenclatura del control especificado.

FindMetaTable(Control)

Devuelve el objeto de metatabla para el control de datos contenedor.

Se aplica a

Consulte también