Control personalizado ASP.NET TextBoxNumerico
Extensión del objeto System.Web.UI.WebControl.TextBox para solamente aceptar valores numeros del teclado en aplicaciones ASP.NET
 

Fecha: 16/Oct/2004 (14/Oct/2004)
Autor: Haaron Gonzalez, e-mail: haarongonzalez@hotmail.com,
weblog: http://weblogs.golemproject.com/hgonzalez/

 


Introducción

Con base en el artículo Control personzalido ASP.NET MessageBox en donde se muestra como crear un control de servidor personalizado con funcionalidad messagebox en ASP.NET se me ocurrió crear una serie de artículos en donde veremos poco a poco como incrementar nuestra fundación de controles de servidor personalizados en ASP.NET. En este artículo usamos el mismo principio del artículo  Control personzalido ASP.NET MessageBox para crear un nuevo control que hereda del objeto System.Web.UI.WebControl.TextBox y así extender su funcionalidad para solamente  aceptar valores numéricos del teclado en un textbox.

La Solución

Para fines prácticos y de seguimiento utilizaremos la solución y proyectos creados en el artículo Control personzalido ASP.NET MessageBox así que si no cuentas con ello empieza por ahí y cuando termines deberás contar con la siguiente estructura:

Selecciona el proyecto ControlesWeb creamos una clase de nombre:  TextBoxNumerico y escribimos el siguiente código:

En este código vemos la definición de dos constantes privadas de tipo string:

Sobrescribimos el sub procedimiento Render para escribir código encargado de asociar el javascript al control TextBox 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 una nueva versión del archivo ControlesWeb.dll ubicado en el fólder Bin del proyecto ControlesWeb.   

En el proyecto TestControlesWeb y agrega un nuevo formulario llamado WebForm2.aspx y expande el elemento References y seleccionamos ControlesWeb damos clic derecho y lo removemos. Ahora seleccionamos y damos doble clic en el WebForm2.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.

 

NOTA: Ya contamos con dos controles de servidor personalizados.

Ahora con solo arrastrar y soltar el control se mostrara en el formulario Web nuestro control personalizado, debido a que este nuevo control hereda del control TextBox cuenta con todas las propiedades originales del control TextBox.

Ahora tienes todo listo para ejecutar la aplicación y ver funcionando tu control personalizado TextBoxNumerico al escribir texto sobre el control verás que no acepta ningún valor solamente números. 

Conclusión

En este artículo vimos como extender la funcionalidad del control System.Web.UI.WebControl.TextBox para agregar el javascript que permita solamente aceptar del teclado valores numéricos cuando el usuario proporciona información.


ir al índice