Control personalizado ASP.NET MessageBox
Extensi�n del objeto System.Web.UI.WebControl.Button para agregar funcionalidad MessageBoX en aplicaciones ASP.NET

Fecha: 13/Oct/2004 (12/Oct/04)
Autor: Haaron Gonzalez, e-mail: [email protected],
weblog: http://weblogs.golemproject.com/hgonzalez/

 

.

Introducci�n

No hace mucho tiempo una persona escribi� un mensaje en un Microsoft User Group de .NET que frecuento as� que decid� escribir un articulo sencillo y formal sobre el tema.

La pregunta era que si alguien sabia como desplegar en una pagina ASP.NET un messagebox  de confirmaci�n. Esto es algo tan sencillo de obtener con un poco de c�digo javascript, solamente agregando en el evento Page_Load el siguiente c�digo podremos obtener un sencillo messagebox en ASP.NET:

Escribir un control personalizado con el fin de extender la funcionalidad existente del control System.Web.UI.WebControls.Button para poder agregar directamente el c�digo javascript que muestre un messagebox y que me permita definir que contenido del mensaje que se mostrara en el, es una tarea muy f�cil que en este articulo vamos a demostrar.

La Soluci�n

Para hacer esto en Microsoft Visual Studio .NET 2003 realizamos lo siguiente:

1.      Seleccionamos de la barra de men� File � New � Blank Solution� y la nombramos Controles

2.      Seleccionamos la soluci�n Controles y presionamos clic derecho del rat�n para seleccionar Add � New Project�

3.      Seleccionamos de Visual Basic Projects la plantilla Class Library con el nombre ControlesWeb

4.      Seleccionamos de nuevo la soluci�n Controles y presionamos clic derecho del rat�n para seleccionar Add � New Project�

5.      Seleccionamos de Visual Basic Projects la plantilla ASP.NET Web Application y la nombramos TestControlesWeb

Deber� de quedar la siguiente estructura de la soluci�n:

En el proyecto ControlesWeb creamos una clase de nombre: BotonConfirmacion y escribimos el siguiente c�digo:

En este c�digo vemos la creaci�n de una propiedad publica llamada TextoConfirmacion en donde vamos a definir el texto que deseamos mostrar en el messagebox.

Sobrescribimos el sub procedimiento Render para escribir c�digo encargado de asociar el javascript al control Button a trav�s de la colecci�n Attributes. Por cierto el sub procedimiento Render env�a el contenido del control a un objeto de tipo HtmlTextWriter el cual escribe una serie secuencial de caracteres HTML y texto en una pagina de formulario Web. La clase HtmlTextWriter provee de capacidades de formato que los controles de servidor ASP.NET utilizan cuando se renderiza contenido HTML en el cliente.

Una vez escrito el c�digo compilemos el proyecto y generamos el archivo ControlesWeb.dll ubicado en el f�lder Bin del proyecto ControlesWeb.  

En el proyecto TestControlesWeb, seleccionamos y damos doble clic en el WebForm1.aspx y en la ventana Toolbox presiona bot�n derecho del rat�n y damos clic para seleccionar la opci�n Add and Remove Items.

 

Ahora con solo arrastrar y soltar el control se mostrara en el formulario Web nuestro control personalizado, debido a que este control hereda del control Button cuenta con todas las propiedades del control Button mas una propiedad adicional que nosotros definimos la propiedad TextoConfirmacion, esta propiedad ser� el texto que deseamos mostrar cuando se cargue el messagebox.

Ahora tienes todo listo para ejecutar la aplicaci�n y ver funcionando tu control personalizado BotonConfirmacion.

Conclusi�n

En este art�culo vimos como extender la funcionalidad del control System.Web.UI.WebControl.Button para agregar el javascript que permita mostrar una ventana messagebox con el contenido personalizado cuando el usuario da clic sobre el boton.


ir al índice