lunes, 28 de septiembre de 2009

Desarrollando un WebPart para cargar un Web User Control

En esta entrada voy a explicar como desarrollar un webpart que cargue nuestro usercontrol.ascx.
1) Supongamos que ya tenemos el usercontrol (myUserControl.ascx) creado.

2) Copiamos el archivo myUserControl.ascx en la carpeta layouts del sitio (para luego levantarlo desde el webPart), es decir en el servidor en la direccion c:\Program Files/Common Files/Microsoft shared/web server extensions/12/ControlTemapltes/MISCONTROLES/.
3) Creamos un webPart de la forma tradicional, mas o menos asi.

public class LoadUserControl : System.Web.UI.WebControls.WebParts.WebPart
{
//Variables
Control _myControl; String err;

public UserControl() {

this.ExportMode = WebPartExportMode.All;
}
protected override void CreateChildControls() {
try {
this.Controls.Clear();
_myControl = this.Page.LoadControl@"~/_controltemplates/MISCONTROLES/myUserControl.ascx"); this.Controls.Add(_myControl);
}
catch (Exception e) {
err = e.Message;
}
} ....

4) Despues registramos el WebPart copiando la dll en la Bin o en Assembly. Copiamos la dll del usercontrol en la Bin del sitio. 5) IISRESET /noforce (si el webpart se registro en assembly) sino no es necesario.

Listo. Agregamos el webpart en cualquier zona y listo, levanta el user contro!!