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: haarongonzalez@hotmail.com,
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ú FileNewBlank Solution… y la nombramos Controles

2.      Seleccionamos la solución Controles y presionamos clic derecho del ratón para seleccionar AddNew 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 AddNew 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