Retroceder   Foros del Web > Programación para sitios web > .NET

Respuesta
 
Herramientas Desplegado
Antiguo 16-may-2006, 03:38   #1 (permalink)
osini está en el buen camino
 
Fecha de Ingreso: junio-2003
Ubicación: Granada
Mensajes: 22
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
osini está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 03:07.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93