Trabajando con Controles de Servidor Los controles de servidor ASP.NET se identifican en una página usando las etiquetas declarativas que contienen el atributo runat="server". El siguiente ejemplo declara tres controles de servidor <asp:label runat="server"> y personaliza las propiedades de texto y estilo de cada uno individualmente. Controles1.aspx Manipulando Controles de Servidor Podemos identificar de forma individual a un control de servidor de ASP.NET en nuestra programación, proporcionándole a dicho control un atributo id. Podemos usar esta referencia id para manipular, programando, en tiempo de ejecución el modelo de objeto del control de servidor. Por ejemplo, el siguiente ejemplo nos muestra como establecer la propiedad Text de un control <asp:label runat="server"> en el evento Page_Load. Controles2.aspx Manejando Eventos de Control Los controles de servidor de ASP.NET pueden, opcionalmente, mostrar y provocar eventos de servidor, qué pueden ser manejados por los desarrolladores de páginas. Un desarrollador debe cumplir ésto conectando de forma declarativa un evento a un control (dónde el atributo "name" del evento indica el nombre del evento, y el atributo "value" indica el nombre del método a llamar. Por ejemplo, el siguiente código muestra como asociar un evento OnClick a un control del tipo button. Controles3.aspx Manejando Múltiples Eventos de Control Los manejadores de eventos proporcionan a los desarrolladores una forma limpia de estructurar la lógica en una página ASP.NET. Por ejemplo, el siguiente ejemplo nos demuestra como conectar y manejar cuatro eventos de botón en una sola página. Controles4.aspx Llevando a Cabo Navegación entre Páginas (Escenario 1) La navegación entre varias páginas es un escenario común en casi todas las aplicaciones Web. El siguiente ejemplo muestra como usar el control <asp:hyperlink runat=server> para navegar a otra página (pasando parámetros personalizados de query string). Este ejemplo también demuestra como obtener acceso a dichos parámetros desde la página objetivo, de forma sencilla. Controles5.aspx Controles5_2.aspx Llevando a Cabo Navegación entre Páginas (Escenario 2) No todos los escenarios se inician a través de hipervínculos en el cliente. Las redirecciones y "navegaciones" en la parte del cliente también se pueden iniciar desde el servidor llamando al método Response.Redirect(url). Esto se hace normalmente cuando es necesaria una validación del lado del servidor en alguna de las entradas del cliente, antes que se realice la navegación. El siguiente ejemplo demuestra como usar el método Response.Redirect para pasar parámetros a otra página destino. También nos demuestra como conseguir acceso a estos parámetros de forma sencilla desde la página destino. Controles6.aspx Transmisión de datos mediante variables de sesión Las sesiones en ASP.NET están iniciadas y se transmiten automáticamente. El siguiente ejemplo muestra cómo se pueden asignar variables de sesión en una página y cómo se pueden leer desde otra página WebForm1.aspx WebForm2.aspx Las variables de sesión pueden ser tantas como se desee y con los valores que se precise. El siguiente ejemplo muestra cómo se van asignando valores a variables WebForm3.aspx Control: Calendar Para tener acceso a la fecha sobre la que se pulsa se puede hacer el evento Clic con un contenido parecido a: Label1.Text = "Hoy es: " + Calendar1.SelectedDate.ToShortDateString(); Control: Sitemap. Se debe poner el control Sitemap en cada página y crear el fichero Web.sitemap. <siteMap> <siteMapNode title="Principal" description="Home" url="~/default.aspx"> <siteMapNode title="Uno" description="La 1" url="~/Uno.aspx"> <siteMapNode title="Once" description="La 11" url="~/Once.aspx" /> <siteMapNode title="Doce" description="La 12" url="~/Doce.aspx" /> </siteMapNode> <siteMapNode title="Dos" description="La 2" url="~/Dos.aspx"> <siteMapNode title="Veintiuno" description="La 21" url="~/Veintiuno.aspx" /> <siteMapNode title="Veintidos" description="La 22" url="~/Veintidos.aspx" /> <siteMapNode title="Veintitres" description="La 23" url="~/Veintitres.aspx" /> </siteMapNode> </siteMapNode> </siteMap>