Question

Je Google sur Page_PreRender que comment pouvons-nous utiliser Page_PreRender plutôt que Page_load ou ce qui pourrait être le scénario où nous ne pouvions pas utiliser Page_load et doivent utiliser Page_PreRender mais chaque endroit où je trouve que,

"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".

mais je ne pouvais pas comprendre que quel type de changements que nous ne pouvions pas faire dans Page_load et doivent faire PreRender.

Comme je sais que sur Page_PreInit nous pouvons créer des contrôles dynamiquement, modifier ou assign MasterPage ou un thème que nous ne pouvions en Page_load ou après Init.

Mais qu'en est-Page_PreRender ce sont des choses que nous ne pouvons le faire en Page_PreRender.

Était-ce utile?

La solution

Certains événements sont déclenchés après l'événement Page_Load. Certains sont apparents tandis que d'autres ne sont pas. En effet, ces événements ne peuvent effectuer après la récréation (ou plutôt après le chargement). Pour exemple, si vous souhaitez enregistrer un morceau de script client, le bon endroit pourrait être Page_Render. Ou la méthode Page.validate que vous pourriez appeler délibérément dans le Page_Load aux contrôles validate peut être comprise comme déjà appelé dans les étapes de rendu.

De même certains autres qui ne fonctionne que si leurs contrôles associés sont prêts à être rendus (entièrement traité pour le navigateur d'un utilisateur).

Autres conseils

Il est pas une question de ce que vous pouvez uniquement ne en Page_PreRender, il peut y avoir des dépendances entre vos contrôles qui ne deviennent apparents après tous les événements ont été traités dans Page_Load.

événement Page_PreRender peut être utilisé pour spécifier des modifications au rendu HTML pour vos commandes. Une différence importante entre la charge et PreRender est qui fonctionne de charge avant vos événements de contrôle sont tirés et PreRender est appelé après les événements de contrôle. Ainsi, si sur la base de votre code d'événements de contrôle que vous souhaitez modifier la sortie html, vous pouvez le faire en cas PreRender.

Une autre chose importante à noter est que l'objet page déclenche l'événement PreRender sur l'objet page, puis fait récursive les mêmes pour chaque contrôle enfant. L'événement PreRender des contrôles individuels se produit après l'événement PreRender de la page. Alors, cela vous donne ajouté un effet de levier sur la façon de modifier le rendu d'un contrôle particulier. Ce n'est pas possible Page_Load.

Il peut également être utilisé si vous utilisez des contrôles personnalisés / utilisateur où le rendu du contrôle est fait par vous.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top