SiteMap Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
La SiteMap clase es una representación en memoria de la estructura de navegación de un sitio, que proporciona uno o varios proveedores de mapas de sitio. Esta clase no puede heredarse.
public ref class SiteMap abstract sealed
public static class SiteMap
type SiteMap = class
Public Class SiteMap
- Herencia
-
SiteMap
Ejemplos
Esta sección contiene dos ejemplos de código. En el primer ejemplo de código se muestra cómo declarar un proveedor de mapa de sitio en un archivo Web.config. En el segundo ejemplo de código se muestra cómo usar un SiteMap objeto .
El siguiente ejemplo de código es una sección de configuración de Web.config que muestra cómo se declara un XmlSiteMapProvider objeto como el objeto predeterminado SiteMapProvider .
<siteMap defaultProvider="MyXmlSiteMapProvider" enabled="true">
<providers>
<add name="MyXmlSiteMapProvider"
description="The site map provider that reads in the .sitemap XML files."
type="System.Web.XmlSiteMapProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
siteMapFile="my.sitemap" />
</providers>
</siteMap>
En el ejemplo de código siguiente se muestra cómo usar el SiteMap objeto accediendo a sus miembros estáticos para mostrar información sobre las RootNode propiedades y CurrentNode . Compárelo con la salida representada por el SiteMapPath control .
<%@ Page language="c#"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
private void Page_Load(object sender, System.EventArgs e)
{
// Examine the CurrentNode, and navigate the SiteMap relative to it.
Response.Write(SiteMap.CurrentNode.Title + "<br />");
Response.Write("<font COLOR='red'>" + SiteMap.CurrentNode.Url + "</font><br />");
// What nodes are children of the CurrentNode?
if (SiteMap.CurrentNode.HasChildNodes) {
IEnumerator childNodesEnumerator = SiteMap.CurrentNode.ChildNodes.GetEnumerator();
while (childNodesEnumerator.MoveNext()) {
// Prints the Title of each node.
Response.Write(childNodesEnumerator.Current.ToString() + "<br />");
}
}
Response.Write("<hr />");
// Examine the RootNode, and navigate the SiteMap relative to it.
Response.Write(SiteMap.RootNode.Title + "<br />");
Response.Write(SiteMap.RootNode.Url + "<br />");
// What nodes are children of the RootNode?
if (SiteMap.RootNode.HasChildNodes) {
IEnumerator rootNodesChildrenEnumerator = SiteMap.RootNode.ChildNodes.GetEnumerator();
while (rootNodesChildrenEnumerator.MoveNext()) {
// Prints the Title of each node.
Response.Write(rootNodesChildrenEnumerator.Current.ToString() + "<br />");
}
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>ASP.NET Example</title>
</head>
<body>
<form id="Form1" runat="server">
<asp:SiteMapPath
runat="server"
ID="SiteMapPath1"
ShowToolTips="false"/>
</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">
<script runat="server">
Private Sub Page_Load(sender As Object, e As System.EventArgs)
' Examine the CurrentNode, and navigate the SiteMap relative to it.
Response.Write(SiteMap.CurrentNode.Title & "<br />")
Response.Write("<font COLOR='red'>" & SiteMap.CurrentNode.Url & "</font><br />")
' What nodes are children of the CurrentNode?
If (SiteMap.CurrentNode.HasChildNodes) Then
Dim childNodesEnumerator As IEnumerator = SiteMap.CurrentNode.ChildNodes.GetEnumerator()
While (childNodesEnumerator.MoveNext())
' Prints the Title of each node.
Response.Write(childNodesEnumerator.Current.ToString() & "<br />")
End While
End If
Response.Write("<hr />")
' Examine the RootNode, and navigate the SiteMap relative to it.
Response.Write(SiteMap.RootNode.Title & "<br />")
Response.Write(SiteMap.RootNode.Url & "<br />")
' What nodes are children of the RootNode?
If (SiteMap.RootNode.HasChildNodes) Then
Dim rootNodesChildrenEnumerator As IEnumerator = SiteMap.RootNode.ChildNodes.GetEnumerator()
While (rootNodesChildrenEnumerator.MoveNext())
' Prints the Title of each node.
Response.Write(rootNodesChildrenEnumerator.Current.ToString() & "<br />")
End While
End If
End Sub ' Page_Load
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>ASP.NET Example</title>
</head>
<body>
<form id="Form1" runat="server">
<asp:SiteMapPath
runat="server"
ID="SiteMapPath1"
ShowToolTips="false"/>
</form>
</body>
</html>
Comentarios
Los mapas de sitio se usan junto con los SiteMapDataSourcecontroles , SiteMapPathy otros para representar una interfaz de navegación eficaz para que los usuarios naveguen por un sitio web. Un objeto SiteMap es un componente de la infraestructura de navegación del sitio de ASP.NET que proporciona acceso a información de mapa de sitio de solo lectura para desarrolladores de páginas y controles de control mediante controles de navegación y SiteMapDataSource. Otros componentes de la infraestructura de navegación del sitio de ASP.NET incluyen las clases SiteMapProvider y XmlSiteMapProvider, el archivo Web.sitemap y los distintos controles que funcionan con la clase SiteMap, como el control SiteMapPath, para representar contenido y menús.
SiteMap Tiene varias funciones:
Proporciona el nodo raíz de la jerarquía de navegación del sitio (solo puede haber un nodo raíz).
Identifica qué proveedor de mapa de sitio es la entidad de seguridad o el proveedor predeterminado.
Realiza un seguimiento de todos los objetos de proveedor que se usan para crear .SiteMap
Fundamentalmente, SiteMap es un contenedor para una colección jerárquica de SiteMapNode objetos . Sin embargo, SiteMap no mantiene las relaciones entre los nodos; en su lugar, lo delega a los proveedores de mapa del sitio. SiteMap actúa como una interfaz para la información de navegación del sitio (en forma de objetos) que mantiene estos proveedores de SiteMapNode mapas de sitio. Realiza un seguimiento de los proveedores desde los que puede acceder a los datos de navegación del sitio y expone su Providers colección. Un proveedor puede almacenar su información de mapa de sitio de cualquier manera, siempre y cuando extienda la SiteMapProvider clase abstracta, la SiteMap clase se puede inicializar correctamente desde ella.
El proveedor predeterminado de la SiteMap clase es la XmlSiteMapProvider clase , que funciona con un archivo de configuración XML, Web.sitemap. Sin embargo, puede escribir su propio SiteMapProvider objeto y usarlo para inicializar el mapa del sitio para el sitio. Para obtener un ejemplo de un proveedor de mapa de sitio personalizado, vea SiteMapProvider.
Se especifica una configuración de mapa de sitio predeterminada que administra la configuración de navegación del sitio. Puede invalidar esta configuración en el archivo Web.config, si decide escribir su propio proveedor de mapa de sitio.
La SiteMap clase solo ofrece miembros estáticos para el rendimiento y se puede acceder a ellos en cualquier momento en un sitio determinado desde un control de servidor web o formulario web.
Propiedades
| Nombre | Description |
|---|---|
| CurrentNode |
Obtiene un SiteMapNode control que representa la página solicitada actualmente. |
| Enabled |
Obtiene un valor booleano que indica si se especifica un proveedor de mapa de sitio en el archivo Web.config y si el proveedor de mapa de sitio está habilitado. |
| Provider |
Obtiene el objeto predeterminado SiteMapProvider para el mapa de sitio actual. |
| Providers |
Obtiene una colección de solo lectura de objetos con nombre SiteMapProvider que están disponibles para la SiteMap clase . |
| RootNode |
Obtiene un SiteMapNode objeto que representa la página de nivel superior de la estructura de navegación del sitio. |
Eventos
| Nombre | Description |
|---|---|
| SiteMapResolve |
Se produce cuando se accede a la CurrentNode propiedad . |