El control SiteMapPath es un control de exploración del sitio que refleja los datos proporcionados por el objeto SiteMap. Proporciona una manera de economizar espacio y explorar fácilmente un sitio, además de servir de punto de referencia del lugar donde se encuentra la página actualmente mostrada en el sitio. Este tipo de control se denomina ruta de exploración o "eyebrow", porque muestra una ruta jerárquica de nombres de página hipervinculados que permite recorrer hacia atrás la jerarquía de páginas desde la ubicación actual. SiteMapDataSource. SiteMapPath es útil para los sitios que tienen estructuras de página jerárquicas profundas y dónde TreeView o Menu podrían ocupar demasiado espacio en una página.
El control SiteMapPath trabaja directamente con los datos del mapa de sitio de un sitio Web. Si lo utiliza en una página no representada en el mapa del sitio, no se mostrará. Para obtener más información sobre los mapas de sitio, vea Información general sobre la exploración del sitio de ASP.NET.
SiteMapPath se compone de nodos. Cada elemento de la ruta se denomina nodo y está representado por un objeto SiteMapNodeItem. El nodo que delimita la ruta y representa la base del árbol jerárquico se denomina nodo raíz. El nodo que representa la página actualmente mostrada es el nodo actual. Cualquier otro nodo entre el nodo actual y el nodo raíz es un nodo primario. La tabla siguiente describe estos tres tipos de nodo.
| Tipo de nodo | Descripción |
| raíz | Nodo que delimita un conjunto jerárquico de nodos. |
| primario | Nodo que tiene uno o varios nodos secundarios pero no es el nodo actual. |
| actual | Nodo que representa la página que se muestra actualmente. |
Cada nodo mostrado por SiteMapPath es un control HyperLink o Literal al que se puede aplicar una plantilla o estilo. Las plantillas y estilos se aplican a los nodos según dos reglas de prioridad:
-
Si hay una plantilla definida para un nodo, reemplaza cualquier estilo definido para el nodo.
-
Las plantillas y los estilos que son específicos de algunos tipos de nodos reemplazan las plantillas y los estilos generales definidos para todos los nodos.
Las propiedades NodeStyle y NodeTemplate se aplican a todos los nodos, sin tener en cuenta su tipo. Si se definen ambas propiedades, NodeTemplate tiene prioridad.
Las propiedades CurrentNodeTemplate y CurrentNodeStyle se aplican a nodos que representan la página actualmente mostrada. Si se define NodeTemplate además de CurrentNodeTemplate, se omite. Si se define NodeStyle además de CurrentNodeStyle, se combina con CurrentNodeStyle para crear un estilo combinado. Este estilo combinado utiliza todos los elementos de CurrentNodeStyle, además de cualquier elemento adicional de NodeStyle que no entre en conflicto con CurrentNodeStyle.
Las propiedades RootNodeTemplate y RootNodeStyle se aplican al nodo que representa la raíz de la jerarquía de exploración del sitio. Si se define NodeTemplate además de RootNodeTemplate, se omite. Si se define NodeStyle además de RootNodeStyle, se combina con RootNodeStyle para crear un estilo combinado. Este estilo combinado utiliza todos los elementos de RootNodeStyle, además de cualquier elemento adicional de NodeStyle que no entrase en conflicto con CurrentNodeStyle. Finalmente, si la página actualmente mostrada es la página raíz del sitio, se utilizan RootNodeTemplate y RootNodeStyle en lugar de CurrentNodeTemplate o CurrentNodeStyle.
El control SiteMapPath utiliza el proveedor del mapa de sitio identificado por la propiedad SiteMapProvider como origen de datos para la información de exploración del sitio. Si no se especifica ningún proveedor, se utiliza el proveedor predeterminado para el sitio, identificado en la propiedad System.Web.SiteMap.Provider. Normalmente, ésta es una instancia del proveedor del mapa de sitio predeterminado para ASP.NET, XmlSiteMapProvider. Si se utiliza el control SiteMapPath dentro de un sitio pero no se configura ningún proveedor del mapa de sitio, el control produce una excepción HttpException.
El control SiteMapPath también proporciona varios eventos que se pueden utilizar para programar. De esta manera, se puede ejecutar una rutina personalizada siempre que se produzca un evento. En la siguiente tabla se enumeran los eventos admitidos por el control SiteMapPath.
| Evento | Descripción |
| ItemCreated | Se produce la primera vez que el control SiteMapPath crea SiteMapNodeItem y lo asocia a SiteMapNode. |
| ItemDataBound | Se produce cuando SiteMapNodeItem se enlaza a datos del mapa de sitio contenidos en SiteMapNode. |
Las clases que derivan de SiteMapPath reemplazan el método InitializeItem para personalizar los controles SiteMapNodeItem que contiene el control de exploración. Para controlar totalmente la manera en que los objetos SiteMapNodeItem se crean y agregan a SiteMapPath, las clases derivadas reemplazan el método CreateControlHierarchy.
Accesibilidad
Es posible que el marcado que se representa de manera predeterminada para este control no respete los estándares de accesibilidad enunciados en las directrices prioritarias de WCAG (Instrucciones de accesibilidad a contenido Web 1.0). Para obtener detalles sobre accesibilidad compatible con este control, vea Controles y accesibilidad en ASP.NET.