Utilizando una clase base en tu aplicacion web
Heredando de una clase base

Fecha: 25/Oct/2004 (22-10-2004)
Autor: Armando Andrade, email: [email protected]

 


Introduccion.

Un saludo amigos, este es el primero de una serie de art�culos en los cuales quiero mostrarles las ventajas de tener una clase base, de las cual heredaremos caracter�sticas para todo nuestro sitio de ASP.NET.

En esta primer parte les mostrare como poder cambiar el titulo de la pagina por medio de c�digo, y en el transcurso de los art�culos ire mostr�ndoles ejemplos mas interesantes de lo que podemos hacer con ella.

El utilizar una clase base para nuestras p�ginas nos permite reutilizar mucho c�digo que en ocasiones se repite continuamente en nuestro sitio de Internet. En ASP.NET tenemos la ventaja de los User Controls que encapsulan l�gica que se puede reutilizar en diferentes p�ginas en nuestro sitio, pero de todas maneras necesitamos recordar colocarlos en cada una de ellas. Sin embargo al utilizar una clase de las cuales todas nuestras p�ginas hereden nos permitir� solo definirlo en una ocasi�n y que todas las p�ginas que heredemos de esta clase base, hereden tambi�n sus caracter�sticas.

Lo primero que tenemos que hacer es crear nuestro proyecto Web. (ASP.NET) e inmediatamente despu�s agregar un elemento de tipo Clase.

Como de esta clase todas nuestras p�ginas van a heredar nuestra clase obviamente tiene que heredar de �System.Web.UI.Page� que es el namespace completo de la clase que tiene todas las caracter�sticas de una pagina de ASP.NET.
De tal forma que debemos incluir:

using System.Web.UI

Y un poco mas abajo, en la definici�n de nuestra clase, heredar

public class PaginaBase : System.Web.UI.Page

En este caso decidi llamar PaginaBase a mi clase base.
A continuaci�n definiremos una propiedad con el nombre Titulo la cual tendr� el valor que le queremos asignar al titulo de nuestra pagina. Obviamente es de tipo string porque lo que queremos almacenar es texto.

string baseTitulo;
public string Titulo
{ get{return baseTitulo;}
set{baseTitulo = value;}
}

El ultimo paso y mas importante es que vamos a sobrescribir el m�todo Render, que es el encargado de escribir el stream de informaci�n (el html) hacia la pagina. Este m�todo recibe como par�metro un HtmlTextWriter

protected override void Render(HtmlTextWriter escritor)
{ // Primero vamos a construir el documento html, // La secci�n del encabezado y el titulo. escritor.Write( @" <html> <head> <title>" + baseTitulo + @"</title> </head> <body>" ); // Ahora le permitimos a la clase base renderear los controles //que se encuentran en el archivo ASPX base.Render( writer ); // Por ultimo rendereamos las etiquetas para cerrar el cuerpo // y el documento escritor.Write( @"a </body> </html>" ); }

Para las personas que utilizan C#, el car�cter de @ lo utilizamos para indicar que no existan secuencias de escape dentro del string.

Con esto terminamos nuestra definici�n de nuestra clase base, ahora vamos a ver como lo implementamos en una p�gina regular.

Lo primero que haremos ser� arrastrar y soltar un textbox y un bot�n dentro de nuestra pagina.

Despu�s en la parte de code-behind de nuestro archivo tenemos que indicarle a nuestra clase que vamos a heredar de nuestra clase base:

public class  WebForm1 : PaginaBase

Al hacer esto tendremos todas las caracter�sticas y propiedades de la clase base y a su vez de la clase pagina ya que nuestra clase base hereda de la clase Page. Esto quiere decir que si hacemos referencia a nuestro actual objeto utilizando la palabra this, nos daremos cuenta que en nuestra lista de Intellisense tenemos una propiedad llamada Titulo, que fue la que nosotros definimos.


private void Page_Load(object sender, System.EventArgs e)
		{
			this.Titulo = "Mi titulo";
		}

Ahora en nuestra p�gina ASPX eliminaremos las etiquetas de html,head y body, ya que nuestra clase base lo har� por nosotros (recomiendo remover estas etiquetas hasta el final, ya que se pierde el Intellisense en tiempo de dise�o al momento de borrarlas).

Aqu� asignamos el valor de �Mi Titulo� al titulo de la p�gina y podemos comprobarlo si compilamos el proyecto.

Por ultimo utilizaremos el bot�n y el textbox para modificar el titulo cuando la pagina ya este cargada. En el evento Onclick del rat�n tomaremos el valor que tenga el textbox y lo escribiremos directamente al Titulo de la p�gina.


private void Button1_Click(object sender, System.EventArgs e)
		{
			this.Titulo = txttitulo.Text;
		}

En este primer art�culo solo hemos tocado por encima las ventajas de tener una p�gina base como repositorio de la l�gica que podemos heredar a todas nuestras p�ginas dentro de nuestro sitio. Y si son un poco fijados se dar�n cuenta que tampoco podemos agregar controles ASP.NET ya que estos deben de estar dentro de nuestra etiqueta <form> as� que en el siguiente articulo veremos como insertar esta etiqueta y a�adir controles a nuestra pagina.

 


ir al ndice