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???
Respuesta Responder a este mensaje
#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.

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???


.

Respuesta Responder a este mensaje
#3 Anonimo
09/06/2004 - 09:24 | Informe spam
Podría usted realizar mayor aportación de código ?


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.

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???


.



.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida