Domanda

Ho cercato su Google Page_preRender per sapere come possiamo usare Page_PreRender anziché page_Load o quale potrebbe essere lo scenario in cui non potremmo usare page_Load e dobbiamo usare Page_PreRender ma in ogni posto lo trovo,

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

ma non riuscivo a capire quale tipo di modifiche non potremmo fare in page_Load e che dobbiamo fare in PreRender.

Poiché so che su Page_PreInit possiamo creare controlli dinamicamente, modificare o assegnare MasterPage o Theme cosa che non potremmo in page_Load o dopo Init.

Ma per quanto riguarda Page_PreRender, quali sono le cose che possiamo fare solo in Page_PreRender.

È stato utile?

Soluzione

Alcuni eventi vengono attivati ​​dopo l'evento Page_Load.Alcuni sono evidenti mentre altri no.Questo perché questi eventi possono svolgersi solo dopo la ricreazione (o meglio dopo il caricamento).Ad esempio, se desideri registrare un pezzo di script client, il posto giusto potrebbe essere Page_Render.Oppure si può ritenere che il metodo Page.validate che potresti chiamare intenzionalmente in Page_Load per convalidare i controlli sia già chiamato nelle fasi di rendering.

Allo stesso modo alcuni altri che funzionano solo quando i controlli associati sono pronti per essere renderizzati (trattati completamente per il browser di un utente).

Altri suggerimenti

Non è una domanda su cosa puoi solo Fai in Page_Perender, potrebbero esserci dipendenze tra i tuoi controlli che diventano evidenti solo dopo che tutti gli eventi sono stati elaborati in Page_Load.

L'evento Page_PreRender può essere utilizzato per specificare le modifiche al rendering HTML per i tuoi controlli. Una differenza importante tra carico e prereder è che il carico funziona prima che gli eventi di controllo vengano sparati e il prereder viene chiamato dopo gli eventi di controllo. Quindi, se sulla base del codice degli eventi di controllo si desidera modificare l'HTML di output, puoi farlo nell'evento prereder.

Un'altra cosa importante da notare è che l'oggetto Page solleva l'evento prereder sull'oggetto pagina, quindi fa in modo ricorsivo lo stesso per ogni controllo del bambino. L'evento prereder dei singoli controlli si verifica dopo l'evento prereder della pagina. Quindi, questo ti dà una maggiore leva su come modificare il rendering di un particolare controllo. Questo non è possibile in Page_Load.

Può anche essere utilizzato se si utilizzano controlli personalizzati/utente in cui il rendering del controllo viene eseguito da te.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top