?id=d23c309e-0003-46ca-8d17-4a6487d25101
Fijar el foco en un control de usuario
por José M. Alarcón
Hace unos días me escribió un lector del blog preguntándome como hacer esto. La cosa es que decía que cuando colocaba un control "normal" de ASP.NET en el formulario, bastaba con llamar a su método Focus() para que, al mostrarse la página en el navegador, dicho control tuviera el foco (por ejemplo un TextBox). El caso es que no tenía la misma funcionalidad en los controles de usuario que se construía para reutilizar la funcionalidad de la interfaz y le resultaría muy útil.
La solución es muy sencilla: un control de usuario no es más que una clase normal y corriente y como tal se puede extender con nuevos métodos y propiedades. Por ello basta con que creemos un método Focus() propio que delegue en el método Focus() del control interno que queremos que pille el foco cuando el control tenga el foco. Me explico... Imaginemos que en nuestro control de usuario ASCX tenemos varios controles: unas etiquetas, un par de cuadros de texto, una lista desplegable, etc... y queremos que cuando el control tenga el foco éste se sitúe en el control de nombre Texto1. Lo único que tenemos que hacer es definir el método Focus así:
Public void Focus()
{
Texto1.Focus();
}
Es bien fácil. Ahora podremos poner el foco programáticamente en nuestro control del mismo modo que lo haríamos con otro de ASP o personalizado.
En un próximo post voy a explicar algo mucho más interesante que esto: cómo hacer que nuestro control de usuario ASCX sea capaz de ser validado por los controles de validación nativos que vienen con ASP.NET. Esto es muy interesante porque podremos usarlos del mismo modo que un control normal para meterles la validación de forma externa y no, como es típico, incluyendo los controles de validación dentro del propio ASCX que no es nada óptimo. A ver si saco tiempo y lo pongo pronto.
José Manuel Alarcón Aguín
Fundador de
campusMVP.es, el
proyecto de referencia en formación on-line para programadores en lengua española.
Autor de varios libros y cientos de artículos. Galardonado como
MVP de Microsoft desde 2004. Gallego de Vigo, amante de la ciencia y la
tecnología, la música y la lectura. Ayudando a la gente en Internet desde 1996.