Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   .NET (http://www.forosdelweb.com/f29/)
-   -   Añadir una clase dinámicamente (http://www.forosdelweb.com/f29/anadir-clase-dinamicamente-394004/)

osini 16/05/2006 03:38

Añadir una clase dinámicamente
 
Estoy haciendo pruebas para añadir una clase dinámicamente a una página utilizando LoadControl.

Dentro de la sección Page_Load he incluido este código:

Código:

Control footerControl = LoadControl("footer.ascx");
footerPanel.Controls.Add(footerControl);

Para cargar una clase que esta en el archivo FOOTER.ASCX. Este LoadControl funciona perfectamente.

Cuando intento ejecutar el siguiente código que carga otra clase a la cual le paso un parámetro para que me muestre un mensaje distinto según sea su valor, se produce un error.

Código:

Control headerControl = LoadControl("header02.ascx");
((Header02)headerControl).IdPlantillaCrtl = txtIdRegistro;
headerPanel.Controls.Add(headerControl);

Me da este error: CS0246: No se puede encontrar el tipo o el nombre de espacio de nombres 'Header02' (¿falta una directiva using o una referencia de ensamblado?)

En esta línea:
Código:

((Header02)headerControl).IdPlantillaCrtl = txtIdRegistro;
La solución es sencilla, basta con añadir en la cabecera del archivo:

Código:

<%@ Reference Control="header02.ascx"%>
Entonces todo funciona perfectamente. Pero al hacerlo así ya no tengo necesidad de usar LoadControl puedo hacerlo con el siguiente código:

Código:

Header02 headerControl = new Header02();
((Header02)headerControl).IdPlantillaCrtl = txtIdRegistro;
headerPanel.Controls.Add(headerControl);

¿Qué sentido tiene entonces la orden LoadControl? Buscando por ahí he leído que dependiendo del compilado que se usa es necesario o no la referencia. En mi caso no hay ningún compilado y debido al proyecto voy a tener que usar unas 50 clases diferentes y me veo teniendo que incluir todas las referencias aunque no se use la clase que dependerá de un parámetro.

¿Alguien tiene alguna idea o consejo?

Muchas gracias.

Oscar
EIDEO Diseño Web Granada


La zona horaria es GMT -6. Ahora son las 23:33.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.