En alguna ocasión habéis tenido la necesidad de crear una librería de controles Web, que pudieseis reutilizar en distintas aplicaciones, sin necesidad de incorporar a vuestra solución el proyecto en cuestión?
Así me empecé yo adentrarme en el mundo de los Server Controls. Una librería compilada en la cual se encontrarán los controles que desarrollemos así como los recursos necesarios para su uso (Imágenes, Scripts,css...etc).
Lo primero que vamos a hacer es crear un proyecto de “Biblioteca de Clases” el cual contendrá los Server Controls que vamos a crear. Ponerle el nombre que queráis(yo usare jordi.developer.ui )
Una vez creado el proyecto, eliminamos la clase que se nos crea por defecto (o la usamos para nuestro control) y creamos una nueva clase con el nombre del control que vamos a crear (UIButton por ejemplo).
Haremos que nuestro control herede de WebControl, pera ello, primero deberemos agregar la referencia “System.Web” a nuestro proyecto.
Con la referencia agregada y nuestro control heredando de
WebControl este ya sera tratado como un control web.
Antes de empezar a diseñar el aspecto del control, vamos a agregar al proyecto un fichero de imagen, el cual usaremos en el diseño del control.
Para poder usar esta imagen, se necesario que especifiquemos que se trata de un
“recurso incrustado”, de esta forma el propio archivo queda
compilado dentro de la librería del propio control.
También necesitaremos registrar en el “AssemblyInfo” el fichero en cuestión.
Con esto ya estaremos en disposición de usar la imagen dentro del diseño del control.
Ahora ya podemos proceder a diseñar el control que vamos a crear.
Ahora vamos a crear una propiedad "Text" a traves de la cual podamos personalizar el control y hacer que este muestre como etiqueta el texto que hayamos asignado a dicha propiedad.
Ahora procederemos a sobrescribiremos el evento “Render” para especificar como deseamos que se pinte nuestro control.
En este caso el código que usare en este control será algo similar a este
De esta forma
estableceremos que en el momento en que se vaya a renderizar nuestro control,
primero genere el codigo de la imagen y a continuacion una etiqueta con el texto
que hemos especificado en su propiedad Text.
Es importante
ver com generamos una URL a partir de un recurso web de la libreria del control
por medio del comando "GetWebresourceUrl".
Ha llegado el
momento de probal el control que hemos creado. Para ellos agregaremos un
proyecto de Aplicacion Vacia de ASP.NET donde crearemos una pagina Test.aspx en
la que probar el control.
A este
proyecto web que hemos creado, hemos de agregarle la referencia a la libreria de
controles que hemos creado, ya que de lo contrario, no podremos usar dichos
controles en la pagina.
Modificacomos
la pagina para registrar el assembly de controles que vamos a usar
y agregamos
el codigo del control en cuestion.
Ya esta listo
para probar. Si ejecutamos deberia aprecernos algo parecido a esto, teniendo en
cuenta que la imagen que usado yo es la del interrogante rodeado de un
circulo.
Este es el
punto de partida para realizar controles mas ricos y mas complejos. A partir de
aqui solo es cuestion de dejar volar la imaginacion.
Espero que
este pequeño articulo os sea de ayuda.
Un saludo y
hasta la proxima.
No hay comentarios:
Publicar un comentario