Carga dinámica de User Controls

Supón que tienes que hacer una web cuya interfaz la configure un usuario. Esta web no es otra cosa que una composición de UserControls y estos los vas a tener que ir cargando en función de un fichero de configuración. ¿Cómo hacerlo?

Cargando UserControls dinámicamente.

ASP.NET nos permite cargar UserControls en la página dinámicamente y para ello nos proporciona el método LoadControl.

A este método le podemos pasar el path del control o el tipo de control y un array de parámetros, aunque si os soy sincero siempre que he intentado hacer un LoadControl en función del tipo, por algo que no entiendo nunca me ha funcionado (aunque si compila e instancia el control).

Una vez hecho esto lo que nos queda es añadirlo a la colección de controles, y el código necesario para realizar esto sería el siguiente :

UserControl control = (UserControl)Page.LoadControl(string.Format("~/UserControls/{0}.ascx", controlName));
Page.Controls.Add(control);

Enlaces relacionados

Pues tan simple como esto, aunque si tienes algo que decir y/o preguntar, no dudes en hacerlo.

Anuncios

8 pensamientos en “Carga dinámica de User Controls

  1. hola tengo un usercontrol UC1 y dentro de el tengo un texbox x:Name=”texto” el cual contiene un dato …. luego este UC1 abre otro Usercontrol UC2 ,,,.pero cuando quiero llamar a ese texto del uc1 no puedo.
    tienen alguna solucion !

    • Hola Victor.

      Gracias por comentar en este blog. Necesito un poco más de información:
      ¿UC2 lo cargas dinámicamente?
      ¿UC2 lo abres haciendo postback?

      Espero tu respuesta.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s