Page.Controls.Add

08/06/2004 - 17:41 por Jesus | Informe spam
Buenas,

Tengo el mismo control ascx en dos páginas distintas.
Ambos controles están referenciados en el fichero aspx
exactamente de la misma manera. En el control se hace la
llamada a otro control para renderizarlo en tiempo de
servidor, asi:

Control myControl = Page.LoadControl
("~/Controls/Control.ascx");
Page.Controls.Add(myControl);
StringBuilder sb = new StringBuilder();
StringWriter writer = new StringWriter(sb);
HtmlTextWriter htmlWriter = new HtmlTextWriter(writer);
myControl.RenderControl
(htmlWriter);

Pues bien, en la llamada al método Add de Page.Controls
me salta una excepción en una de las dos páginas que dice
System.Web.HttpException: La colección de controles no
puede modificarse porque el control contiene bloques de
código (por ej. <% ... %>). Creo que es porque
aparentemente el la propiedad Page.Controls.IsReadOnly
está a true en esa página y en la otra no. Como puede ser
esto???

Preguntas similare

Leer las respuestas

#1 Jose Marcenaro
09/06/2004 - 00:07 | Informe spam
Creo que el motivo del error no es la propiedad IsReadOnly, sino el hecho de
que el user control interno que deseas instanciar (Control.aspx) contiene
controles con DataBinding (<% %> en su HTML) que no pueden ser cargados
dinámicamente.

Saludos
Jose Marcenaro

"Jesus" escribió en el mensaje
news:19bb601c44d6f$18d88c50$
Buenas,

Tengo el mismo control ascx en dos páginas distintas.
Ambos controles están referenciados en el fichero aspx
exactamente de la misma manera. En el control se hace la
llamada a otro control para renderizarlo en tiempo de
servidor, asi:

Control myControl = Page.LoadControl
("~/Controls/Control.ascx");
Page.Controls.Add(myControl);
StringBuilder sb = new StringBuilder();
StringWriter writer = new StringWriter(sb);
HtmlTextWriter htmlWriter = new HtmlTextWriter(writer);
myControl.RenderControl
(htmlWriter);

Pues bien, en la llamada al método Add de Page.Controls
me salta una excepción en una de las dos páginas que dice
System.Web.HttpException: La colección de controles no
puede modificarse porque el control contiene bloques de
código (por ej. <% ... %>). Creo que es porque
aparentemente el la propiedad Page.Controls.IsReadOnly
está a true en esa página y en la otra no. Como puede ser
esto???
#2 Jesus
09/06/2004 - 08:40 | Informe spam
Pero ese mismo control si se me carga dinamicamente en la
otra página y funciona correctamente, se renderiza y hace
el databinding bien. Me da error en la otra página,
porque la propiedad IsReadOnly de la página se pone a
true cuando en ambas páginas el control esta incrustado
de la misma manera y con la misma funcionalidad.

Mostrar la cita
IsReadOnly, sino el hecho de
Mostrar la cita
(Control.aspx) contiene
Mostrar la cita
pueden ser cargados
Mostrar la cita
mensaje
Mostrar la cita
#3 Anonimo
09/06/2004 - 09:24 | Informe spam
Podría usted realizar mayor aportación de código ?


Mostrar la cita
la
Mostrar la cita
hace
Mostrar la cita
dice
Mostrar la cita
ser
Mostrar la cita
Ads by Google
Search Busqueda sugerida