Dentro de la sección Page_Load he incluido este código:
Código:
Para cargar una clase que esta en el archivo FOOTER.ASCX. Este LoadControl funciona perfectamente.Control footerControl = LoadControl("footer.ascx"); footerPanel.Controls.Add(footerControl);
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:
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?)Control headerControl = LoadControl("header02.ascx"); ((Header02)headerControl).IdPlantillaCrtl = txtIdRegistro; headerPanel.Controls.Add(headerControl);
En esta línea:
Código:
La solución es sencilla, basta con añadir en la cabecera del archivo:((Header02)headerControl).IdPlantillaCrtl = txtIdRegistro;
Código:
Entonces todo funciona perfectamente. Pero al hacerlo así ya no tengo necesidad de usar LoadControl puedo hacerlo con el siguiente código:<%@ Reference Control="header02.ascx"%>
Código:
¿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.Header02 headerControl = new Header02(); ((Header02)headerControl).IdPlantillaCrtl = txtIdRegistro; headerPanel.Controls.Add(headerControl);
¿Alguien tiene alguna idea o consejo?
Muchas gracias.
Oscar
EIDEO Diseño Web Granada