Está en la página 1de 3

subgurim.

net(/)

Buscar

Inicio (http://www.subgurim.net) /
(http://www.subgurim.net)ASP.NET General (http://www.subgurim.net/Articulos/asp-net-generalcategoria.aspx) /
Cmo hacer un control de usuario (.ascx)

Cmo hacer un control de


usuario (.ascx)
jueves, 14 de diciembre de 2006 | ASP.NET General (http://www.subgurim.net/Articulos/asp-net-generalcategoria.aspx) | 92087 lecturas | 4,387485 puntos

Valorar
Ejemplo de Control de usuario
(http://www.subgurim.net/Upload/ascx.zip)
Los controles de usuario (esos ficheritos .ascx) son
controles que nos creamos nosotros mismo, perfecto
complemento de los controles Web que nos provee
ASP.NET.
Son como plantillas que podremos ubicar en tantos
sitios de nuestra Web como queramos, de forma que
todo queda centralizado, y cualquier cambio en nuestro
fichero .ascx se ver reflejado all donde lo hayamos
ubicado.
Realmente es ms difcil explicar lo que es que el

utilizarlo
Y como siempre un ejemplo vale ms de mil palabras, pongamos uno:
Supongamos que en varios sitios de nuestra Web, necesitamos que el usuario nos diga una fecha. Existen
mil formas de hacerlo, y en todas ellas acabaremos encontrando los mismo problemas, muchos de los
cuales radican en que el usuario debe poner la fecha en el formato correcto para que nuestra aplicacin lo
entienda.
Como es trabajoso hacerlo una vez, ms lo es si lo tenemos que hacer en varios sitios de nuestra Web.
Proponemos pues el siguiente control .ascx, que no slo evita el problema del formato correcto, sino que se
le hace muy cmodo al usuario:
Componentes
- Un Calendar
- Un TextBox
Funcionalidades
- El TextBox ser ReadOnly, de modo que el usuario no podr escribir en l.
- Presionando sobre una fecha en el calendar se modificar el TextBox.

Propiedades
- FechaElegida: nos devolver un DateTime con la fecha que hemos elegido.

Ahora vamos a lo importante: cmo se crea y se usa un control de usuario?


Crearlo es realmente sencillo, aadamos un nuevo item y elijamos un Web User Control:

Una vez creado, lo usamos como si de una pgina .aspx normal se tratara, con su codebehind, su html, etc.
(descargaos el control para ver el cdigo de nuestro ejemplo).
Para aadir el control a cualquier sitio de nuestra Web, no tenemos ms que arrastrarlo al lugar que
queremos... y ya est!!
En nuestro ejemplo, nos queda este cdigo:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="Varios_ASCX_Default" %>
<%@ Register src="Subgurim.ascx" TagName="Subgurim" TagPrefix="uc1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Subgurim.NET ejemplo de control de usuario</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<uc1:Subgurim id="Subgurim1" runat="server"></uc1:Subgurim>
</div>
</form>
</body>
</html>
Destacamos en negrita lo que se ha aadido: un register apuntando a dnde se ubica el control, y un tag que
indica donde poner el control dentro de nuestra pgina .aspx.

Slo indicar una cosa que no me gusta de lo que hace ASP.NET, y es que si el control est en un directorio
diferente al que se encuentra tu pgina, comenzar a poner tantos "../" como le haga falta. Por eso yo
siempre aconsejo cambiar el "Src" a mano y poner el path de forma absoluta. Y eso es ms urgente an si el
control lo aadimos a una masterpage y vamos a navegar por ms directorios.
Por ejemplo, si todos nuestros controles los pusiramos en el directorio "UserControls", el Src que aconsejo
sera:
<%@ Register src="~/UserControls/Subgurim.ascx" TagName="Subgurim" TagPrefix="uc1" %>
De este modo nos evitamos problemas.
La (fea) Web que nos queda con lo que hemos hecho se parece a:

Descargaos libremente el control!!


Ejemplo de Control de usuario (http://www.subgurim.net/Upload/ascx.zip)

Ante cualquier duda/sugerencia sobre este artculo, comntalo en el foro de ASP.NET (http://www.esasp.net/Foro) de nuestra Web Amiga sobre asp.net (http://www.es-asp.net)

subgurim.net 2015

También podría gustarte