Siguiendo con la idea de utilizar nuestra aplicación base de ejemplo, vamos suponer que tenemos una sección de inscripciones de alumnos y que vamos a mostrar en determinadas páginas de nuestro sitio el camino que recorre la aplicación (Inicio > Alumnos > Inscripciones).
Para ello ASP.NET nos provee de elementos que nos hacen la vida muy facil. Para nuestro ejemplo vamos a utilizar 3 elementos:
- <asp:SiteMapDataSource/>
- <asp:SiteMapPath/>
- Archivo Site Map (xml)
Como se trata de código que nos gustaría utilizar en diferentes páginas de nuestro sitio, vamos a crear un web user control y vamos a agregarle los dos primeros elementos que mencionamos. El código sería algo como lo siguiente:
<%@ Control Language="C#" AutoEventWireup="true"Luego necesitamos crear el archivo web.siteMap.xml. Esto es tan simple como hacer click derecho en la aplicación > Add Item y seleccionar Site Map de las opciones en Visual Studio o bien agregar un archivo xml y nombrarlo web.siteMap.xml.
CodeFile="siteNavigation.ascx.cs" Inherits="commonControls_siteNavigation" %>
<asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" />
<asp:SiteMapPath ID="SiteMapPath1" runat="server"/>
La estructura de este archivo es como el ejemplo que sigue. Note que todos los archivos están en el directorio raiz de mi aplicación pero a través de los nodos siteMapNode puedo lograr la creación de secciones lógicas de acuerdo a mis necesidades.
<?xml version="1.0" encoding="utf-8" ?>Por último incluimos el web user control que creamos antes en las páginas que necesitamos que se muestre el path de la aplicación. Por ejemplo en nuestra página alumnoInscripcion.aspx:
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
<siteMapNode url="~\inicio.aspx" title="Inicio" description="">
<siteMapNode url="~\alumnos.aspx" title="Alumnos" description="">
<siteMapNode url="~\alumnoInscripcion.aspx"
title="Inscripciones" description="" />
</siteMapNode>
</siteMapNode>
</siteMap>
<%@ Page Language="C#" MasterPageFile="~/MasterPage.master"Esto es todo lo que necesitamos; compilamos y ejecutamos la aplicacion y si vamos a nuestra página alumnoInscripcion.aspx veremos algo parecido a la siguiente imagen. Espero que les haya sido útil, no dejen de participar dejando comentarios.
AutoEventWireup="true"
CodeFile="alumnoInscripcion.aspx.cs" Inherits="alumnoInscripcion"
Title="Untitled Page" %>
<%@ Register Src="~/commonControls/siteNavigation.ascx"
TagName="siteNavigation" TagPrefix= "uc1" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<uc1:siteNavigation ID="siteNavigation1" runat="server" />
</asp:Content>
3 comentarios:
Muy util y facil... gracias... 10 puntos tu explicación, sencilla y al pie.
Saludos.
Juan José Benzonelli
juanjobe@gmail.com
Excelente explicación, super útil. Muchísimas gracias
asdasdsadasdasdasdasdasdas
Publicar un comentario