Pregunta

Google sobre Page_perender que cómo podemos usar Page_perender en lugar de Page_Load o cuál podría ser el escenario en el que no pudimos usar Page_Load y tenemos que usar Page_Preerender, pero cada lugar donde lo encuentro, lo encuentro.

"The point at which the objects are prerendered is the last time changes to the objects can be saved or persisted to viewstate. This makes the PreRender step a good place to make final modifications, such as changing properties of controls or changing Control Tree structure, without having to worry about ASP.NET making changes to objects based off of database calls or viewstate updates. After the PreRender phase those changes to objects are locked in and can no longer be saved to the page viewstate. The PreRender step can be overridden using OnPreRender".

Pero no podía entender qué tipo de cambios son los que no pudimos hacer en Page_Load y tener que hacer en Prerender.

Como sé que en PAGE_PREINIT podemos crear controles dinámicamente, cambiar o asignar MasterPage o tema que no pudimos en PAGE_LOAD o After Init.

Pero, ¿qué pasa con Page_perender que son las cosas que solo podemos hacer en Page_perender?

¿Fue útil?

Solución

Ciertos eventos se activan después del evento Page_Load. Algunos son evidentes, mientras que otros no lo son. Esto se debe a que estos eventos solo pueden funcionar después de la recreación (o más bien después de la carga). Para por ejemplo, si desea registrar una script de cliente, el buen lugar podría ser Page_render. O el método Page.validate al que puede llamar a propósito en Page_Load para validar los controles que ya se pueden llamar en las etapas de renderizado.

Del mismo modo, ciertos otros que solo funcionan cuando sus controles asociados están listos para ser representados (completamente tratados para el navegador de un usuario).

Otros consejos

No es una cuestión de lo que puedes solamente Hacer en Page_perender, puede haber dependencias entre sus controles que solo se hacen evidentes después de que todos los eventos se hayan procesado en Page_Load.

El evento Page_perender se puede utilizar para especificar cambios en la representación HTML para sus controles. Una diferencia importante entre la carga y el prerender es que la carga se ejecuta antes de que sus eventos de control se disparen y se llame prerender después de los eventos de control. Entonces, si se basa en su código de eventos de control, desea cambiar el HTML de salida, puede hacerlo en el evento Prerender.

Otra cosa importante a tener en cuenta es que el objeto de página aumenta el evento Prerender en el objeto de página, y luego recursivamente hace lo mismo para cada control de niños. El evento prerender de los controles individuales ocurre después del evento Prerender de la página. Por lo tanto, esto le brinda apalancamiento adicional sobre cómo modificar la representación de un control particular. Esto no es posible en Page_Load.

También se puede usar si está utilizando controles personalizados/de usuario donde usted realiza la representación del control.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top