Control personalizado ASP.NET TextBoxCapital

Extensión del objeto System.Web.UI.WebControl.TextBox para agregar funcionalidad de conversión del estilo de letra a mayúsculas o minúsculas en aplicaciones ASP.NET

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

 


Introducción

Continuando con la serie de artículos sencillos pero espero útiles sobre controles de servidor personalizados hoy hablaremos sobre el estilo de letra en un control TextBox, pero antes de continuar, si aun no has visto los artículos anteriores, aquí esta la lista:

En este cuarto artículo veremos como extender la funcionalidad del objeto  System.Web.UI.WebControls.TextBox para convertir la información captada a un estilo de letra mayúscula o minúscula cuando se pierde el foco del control.

La Solución

Para fines prácticos y de seguimiento utilizaremos la solución y proyectos creados en los artículos de esta serie mencionados anteriormente 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:  TextBoxCapital y escribimos el siguiente código:

En este código vemos la definición de una propiedad de tipo enumeración con la cual controlaremos el tipo de letra que el usuario selecciona para nuestro control, los valores de la enumeración son:  

  • Normal: Tipo de letra normal y ningún cambio se realizará.
  • Mayuscula: Tipo de letra mayúscula cuando el control pierde el foco.
  • Minuscula: Tipo de letra minúscula cuando el control pierde el foco.

Sobrescribimos el sub procedimiento Render para escribir código encargado de generar código HTML apropiado para ofrecer la funcionalidad de desplazamiento. Dentro de este sub procedimiento vemos como la variable privada mintCapitalizacion es utilizada para saber que tipo de opción seleccionó el usuario y dependiendo de esta, se especifica el código javascript apropiado y se le asocia al atributo onChange el cual se dispara cuando el control pierde el foco.

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 página 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 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 WebForm4.aspx y expande el elemento References y seleccionamos ControlesWeb damos clic derecho y lo removemos. Ahora seleccionamos y damos doble clic en el WebForm4.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. Buscamos y seleccionamos el archivo ControlesWeb.dll, damos clic en el titulo Namescape de la columna y se ordenara la lista de controles apareciendo al principio nuestros tres controles de servidor personalizados.

 

A continuación vamos a arrastrar y soltar dos controles de tipo TextBoxCapital , debido a que este nuevo control hereda del objeto  TextBox cuenta con todas las propiedades originales del control  TextBox más la nueva propiedades definida anteriormente, en el primer control seleccionamos la propiedad EstiloLetra = Mayuscula y en el segundo control EstiloLetra = Minuscula.

Ahora si tienes todo listo para ejecutar la aplicación y ver funcionando tu control personalizado  TextBoxCapital verifica que cuando escribes información en el primer control en capitalización minúscula verás que cuando pierde el foco y te mueves al segundo control se convierte en mayúscula y lo mismo para el segundo control pero escribes en capitalización mayúscula y veráz como se convierte en minúscula.

Conclusión

En este artículo vimos como extender la funcionalidad del control System.Web.UI.WebControl.TextBox para agregar un poco de código javascript y poder convertir el texto captado en tipo de letra mayúscula o minúscula según la selección de la propiedad EstiloLetra del control TextBoxCapital.


ir al índice