Les pages maîtresses et les contrôles utilisateurs génèrent des événements au même titre qu'une page Web. Ils ont donc chacun leur Init, leur Load et leur PreRender.
Les principaux événements de la page Web, de sa page maîtresse et des contrôles utilisateurs ajoutés à la page maîtresse seront exécutés dans l'ordre suivant.
▼Publicité Le texte se poursuit plus bas
La liste des évènements impliqués dans le processus de génération d'une page Web est impressionnante. Voici un résumé de ces évènements.
Évènement | Notes | Utilisation |
---|---|---|
PreInit | Cet événement n'est disponible que pour la page. On ne peut donc pas l'utiliser pour une page maîtresse ni pour un contrôle utilisateur. Les variables de session sont disponibles mais le ViewState n'est pas encore disponible. |
Vous pouvez utiliser cet événement pour créer des contrôles dynamiquement. Pour les contrôles serveurs définis dans le fichier .aspx, vous ne pouvez pas initialiser leurs valeurs ici car elles seront initialisées automatiquement à partir des balises du fichier .aspx lors d'un événement ultérieur. |
Init | Tous les contrôles sont initialisés (informations lues dans le fichier .aspx). |
Attention : vous ne devriez pas utiliser cet événement pour initialiser les propriétés des contrôles serveur car les valeurs données ici ne seront pas persistantes après un PostBack (les valeurs seront écrasées par celles retenues dans le ViewState). |
InitComplete | Cet événement n'est disponible que pour la page. |
|
PreLoad | Cet événement n'est disponible que pour la page. Le ViewState est disponible donc sur un PostBack, les contrôles ont retrouvé leur valeur. |
|
Load |
|
Ici, vous pouvez initialiser les propriétés des contrôles serveur. |
LoadComplete | Cet événement n'est disponible que pour la page. |
Codez ici les traitements qui demandent à ce que tous les contrôles de la page soient chargés. |
PreRender | Dernière occasion de modifier l'apparence de la page (ex : changer le texte d'un libellé, cacher un bouton, etc.). |
Vous pouvez utiliser cet événement pour apporter des modifications aux contrôles juste avant que la page soit affichée. |
PreRenderComplete | Cet événement n'est disponible que pour la page. Les contrôles orientés données ont été remplis avec les données (DataBind). |
Ici, vous pouvez coder les traitements nécessitant que tous les DataBind aient été exécutés. Attention : il est trop tard pour modifier les contrôles... |
SaveStateComplete | Le ViewState de chaque contrôle a été enregistré. |
Les modifications apportées ici ne seront pas reflétées dans les ViewStates lors du prochain PostBack. |
Unload | Le code HTML de la page, incluant sa page maîtresse et les contrôles utilisateurs, a été envoyé au client. |
|
Lorsqu'une page est basée sur une page maîtresse et que la page ou sa page maîtresse contient des contrôles utilisateurs, il est important de connaître l'ordre d'exécution des événements de la page, de la page maîtresse et du contrôle utilisateur. Par exemple, le Init de la page est réalisé après celui des contrôles utilisateurs et de la page maîtresse alors que c'est l'inverse pour le Load.
Voici donc l'ordre d'exécution des événements
À chaque fois qu'une opération force le rechargement d'une page, par exemple lorsqu'on clique sur un bouton, tout le cycle est repris du du début. Notez que la méthode associée à l'événement OnClick d'un bouton sera exécutée APRÈS les événements Init et Load.
Si vous avez un doute quant à l'ordre d'exécution des différents événements, une technique efficace consiste à utiliser le débogueur pour constater, dans l'ordre, quels événements sont exécutés.
« Vue d'ensemble du cycle de vie des pages ASP.NET ». MSDN. http://msdn.microsoft.com/fr-fr/library/ms178472.aspx
« Complete Lifecycle of an ASP.Net page and controls ». The Site Doctor. http://blogs.thesitedoctor.co.uk/tim/2006/06/30/Complete+Lifecycle+Of+An+ASPNet+Page+And+Controls.aspx
« ASP.NET Page Events Lifecycle ». Development With A Dot. http://weblogs.asp.net/ricardoperes/archive/2009/03/08/asp-net-page-events-lifecycle.aspx
« Understanding the order of Page events ». Cryer. http://www.cryer.co.uk/brian/csharp/ms_dotnet_order_of_page_events.htm
« Comprendre le cycle de vie d’une page ». Coding in .NET!. http://coding-in.net/fr/aspnet-comprendre-le-cycle-de-vie-dune-page/
FU Sam. « ASP.NET 2.0 Page Life Cycle ». Tech notes. http://fuchangmiao.blogspot.com/2007/11/aspnet-20-page-lifecycle.html
« The ASP.NET Page Lifecycle – A Basic Approach ». The code project. http://www.codeproject.com/Articles/20659/The-ASP-NET-Page-Lifecycle-A-Basic-Approach
« FAQ: Sequence that events are raised for Pages, UserControls, MasterPages and HttpModules ». ASP.NET. http://forums.asp.net/t/1191194.aspx/1
Site fièrement hébergé chez A2 Hosting.