Exportar (0) Imprimir
Expandir todo

SiteMapNode (Clase)

Representa un nodo en la estructura jerárquica del mapa del sitio, como la descrita por la clase SiteMap y por las clases que implementan la clase SiteMapProvider abstracta.

Espacio de nombres: System.Web
Ensamblado: System.Web (en system.web.dll)

public class SiteMapNode : ICloneable, IHierarchyData, INavigateUIData
public class SiteMapNode implements ICloneable, IHierarchyData, 
	INavigateUIData
public class SiteMapNode implements ICloneable, IHierarchyData, 
	INavigateUIData
No aplicable.

Un objeto SiteMapNode representa una página de un sitio Web de una estructura de mapa del sitio. Los objetos SiteMapNode los carga la clase SiteMap estática en tiempo de ejecución utilizando uno o varios proveedores de mapas para cargar en la memoria los datos del mapa del sitio desde el almacenamiento persistente. La clase SiteMapNodeItem empaqueta los objetos SiteMapNode para su uso por los controles del servidor Web, como el control SiteMapPath.

La clase SiteMapNode incluye varias propiedades utilizadas para describir una sola página de un sitio Web, por ejemplo propiedades que describen una página, como Url, Titley Description. Mientras que la clase XmlSiteMapProvider, que es el proveedor del mapa del sitio predeterminado para ASP.NET, utiliza la propiedad Url como clave de búsqueda en las colecciones internas utilizadas por el proveedor para realizar el seguimiento de los nodos, la clase SiteMapNode admite una propiedad Key básica que los proveedores de mapas de sitios pueden utilizar para realizar el seguimiento de los nodos. Además, la propiedad Url la utilizan los controles de exploración para representar los hipervínculos en las páginas contenidas en una estructura de exploración. La propiedad Title es un nombre descriptivo para el SiteMapNode; con frecuencia es igual que el título HTML de un Formulario Web Forms y los controles de exploración la utilizan para representar las etiquetas simples. Por último, existe una colección NameValueCollection de atributos Attributes adicionales disponible para los proveedores de mapas de sitios que utilizan los objetos SiteMapNode, pero requiere propiedades adicionales que no están disponibles en la clase SiteMapNode base.

TemaUbicación
Cómo: Enumerar los nodos del mapa del sitio mediante programaciónGenerar aplicaciones Web ASP .NET en Visual Studio
Cómo: Configurar varios mapas de sitio y proveedores de mapas de sitioGenerar aplicaciones Web ASP .NET en Visual Studio
Cómo: Filtrar los nodos recuperados por controles SiteMapDataSource de servidor WebGenerar aplicaciones Web ASP .NET en Visual Studio
Cómo: Modificar los nodos de mapa de sitio en memoria mediante programaciónGenerar aplicaciones Web ASP .NET en Visual Studio
Cómo: Mostrar los datos de mapas de sitio de controles no jerárquicos de servidor webGenerar aplicaciones Web ASP .NET en Visual Studio
Cómo: Agregar la función de exploración a sitios sencillosGenerar aplicaciones Web ASP .NET en Visual Studio
Cómo: Implementar proveedores de mapas de sitio de ASP.NETGenerar aplicaciones Web ASP .NET en Visual Studio
Cómo: Filtrar los nodos recuperados por controles SiteMapDataSource de servidor WebGenerar aplicaciones Web ASP .NET
Cómo: Configurar varios mapas de sitio y proveedores de mapas de sitioGenerar aplicaciones Web ASP .NET
Cómo: Enumerar los nodos del mapa del sitio mediante programaciónGenerar aplicaciones Web ASP .NET
Cómo: Modificar los nodos de mapa de sitio en memoria mediante programaciónGenerar aplicaciones Web ASP .NET
Cómo: Mostrar los datos de mapas de sitio de controles no jerárquicos de servidor WebGenerar aplicaciones Web ASP .NET
Cómo: Enumerar los nodos del mapa del sitio mediante programaciónGenerar aplicaciones Web ASP .NET en Visual Studio
Cómo: Configurar varios mapas de sitio y proveedores de mapas de sitioGenerar aplicaciones Web ASP .NET en Visual Studio
Cómo: Filtrar los nodos recuperados por controles SiteMapDataSource de servidor WebGenerar aplicaciones Web ASP .NET en Visual Studio
Cómo: Modificar los nodos de mapa de sitio en memoria mediante programaciónGenerar aplicaciones Web ASP .NET en Visual Studio
Cómo: Mostrar los datos de mapas de sitio de controles no jerárquicos de servidor webGenerar aplicaciones Web ASP .NET en Visual Studio
Cómo: Agregar la función de exploración a sitios sencillosGenerar aplicaciones Web ASP .NET en Visual Studio
Cómo: Implementar proveedores de mapas de sitio de ASP.NETGenerar aplicaciones Web ASP .NET en Visual Studio
Cómo: Implementar proveedores de mapas de sitio de ASP.NETGenerar aplicaciones Web ASP .NET
Cómo: Agregar la función de exploración a sitios sencillosGenerar aplicaciones Web ASP .NET

Esta sección contiene dos ejemplos de código. El primer ejemplo de código muestra cómo crear una nueva colección de nodos del mapa del sitio y agregarle elementos. El segundo ejemplo de código muestra cómo cargar los datos del mapa del sitio desde un archivo de texto.

El ejemplo de código siguiente muestra cómo utilizar el constructor SiteMapNodeCollection para crear una nueva colección SiteMapNodeCollection y, a continuación, agregarle elementos con el método Add.

// The LoadSiteMapData() method loads site navigation
// data from persistent storage into a DataTable.
DataTable siteMap = LoadSiteMapData();

// Create a SiteMapNodeCollection.
SiteMapNodeCollection nodes = new SiteMapNodeCollection();

// Create a SiteMapNode and add it to the collection.
SiteMapNode tempNode;
DataRow row;
int index = 0;

while (index < siteMap.Rows.Count)
{

    row = siteMap.Rows[index];

    // Create a node based on the data in the DataRow.
    tempNode = new SiteMapNode(SiteMap.Provider,
                                row["Key"].ToString(),
                                row["Url"].ToString());

    // Add the node to the collection.
    nodes.Add(tempNode);
    ++index;
}

El ejemplo de código siguiente muestra cómo analiza el SimpleTextSiteMapProvider un archivo de texto que contiene los datos del mapa del sitio en cadenas separada por comas. Un nuevo objeto SiteMapNode se agrega a las colecciones de seguimiento internas de la clase por cada línea leída del archivo.

Este ejemplo de código forma parte de un ejemplo más extenso referente a la clase SiteMapProvider.

protected virtual void LoadSiteMapFromStore()
{
  string pathToOpen;

  lock (this)
  {
    // If a root node exists, LoadSiteMapFromStore has already
    // been called, and the method can return.
    if (rootNode != null)
    {
      return;
    }
    else
    {
      pathToOpen = HttpContext.Current.Server.MapPath("~" + "\\" + sourceFilename);

      if (File.Exists(pathToOpen))
      {
        // Open the file to read from.
        using (StreamReader sr = File.OpenText(pathToOpen))
        {

          // Clear the state of the collections and rootNode
          rootNode = null;
          siteMapNodes.Clear();
          childParentRelationship.Clear();

          // Parse the file and build the site map
          string s = "";
          string[] nodeValues = null;
          SiteMapNode temp = null;

          while ((s = sr.ReadLine()) != null)
          {

            // Build the various SiteMapNode objects and add
            // them to the ArrayList collections. The format used
            // is: URL,TITLE,DESCRIPTION,PARENTURL

            nodeValues = s.Split(',');

            temp = new SiteMapNode(this,
                HttpRuntime.AppDomainAppVirtualPath + "/" + nodeValues[0],
                HttpRuntime.AppDomainAppVirtualPath + "/" + nodeValues[0],
                nodeValues[1],
                nodeValues[2]);

            // Is this a root node yet?
            if (null == rootNode &&
                (null == nodeValues[3] || nodeValues[3] == String.Empty))
            {
              rootNode = temp;
            }

          // If not the root node, add the node to the various collections.
            else
            {
              siteMapNodes.Add(new DictionaryEntry(temp.Url, temp));
              // The parent node has already been added to the collection.
              SiteMapNode parentNode =
                       FindSiteMapNode(HttpRuntime.AppDomainAppVirtualPath + "/" + nodeValues[3]);
              if (parentNode != null)
              {
                childParentRelationship.Add(new DictionaryEntry(temp.Url, parentNode));
              }
              else
              {
                throw new Exception("Parent node not found for current node.");
              }
            }
          }
        }
      }
      else
      {
        throw new Exception("File not found");
      }
    }
  }
  return;
}

System.Object
  System.Web.SiteMapNode

Los miembros estáticos públicos (Shared en Visual Basic) de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Windows 98, Windows 2000 Service Pack 4, Windows CE, Windows Millennium, Windows Mobile para Pocket PC, Windows Mobile para Smartphone, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter

Microsoft .NET Framework 3.0 es compatible con Windows Vista, Microsoft Windows XP SP2 y Windows Server 2003 SP1.

.NET Framework

Compatible con: 3.0, 2.0

Adiciones de comunidad

AGREGAR
Mostrar:
© 2015 Microsoft