Maison >développement back-end >Tutoriel C#.Net >Quel est l'ordre dans lequel les événements de page Asp.NET sont chargés ?
Cet article vous présente principalement la séquence de chargement des événements dans les pages Asp.NET. L'article le présente en détail à travers des images, des textes et des exemples de codes. Il a une certaine valeur de référence et d'apprentissage pour tous les amis qui en ont besoin. ci-dessous. Venez apprendre avec moi.
Cet article vous présente principalement le contenu pertinent sur la séquence de chargement des événements de page Asp.NET, et le partage pour votre référence et votre étude. Pas grand chose à dire ci-dessous, jetons un œil à l'introduction détaillée :
Événements dans les pages maîtres et les pages de contenu ASP.NET
Nous savons que les pages maîtres et les pages de contenu peuvent contenir des gestionnaires d'événements pour les contrôles. Pour les contrôles, les contrôles de la page de contenu déclenchent des événements dans la page de contenu et les contrôles de la page maître déclenchent des événements dans la page maître. Les événements de contrôle ne sont pas envoyés de la page de contenu à la page maître, et les événements des contrôles de la page maître ne peuvent pas être gérés dans la page de contenu, ils sont uniquement gérés dans leurs propres événements.
Voici la séquence des événements après la fusion de la page maître (Master) et de la page de contenu (ContentPage) :
Master页面控件 Init 事件。 ContentPage页面控件 Init 事件。 Master页 Init 事件。 ContentPage页 Init 事件。 ContentPage页 Load 事件。 Master页 Load 事件。 ContentPage页面控件 Load 事件。 ContentPage页面 PreRender 事件。 Master页面 PreRender 事件。 Master页面控件 PreRender 事件。 ContentPage页面控件 PreRender 事件。
L'ordre des événements dans les pages maîtres et les pages de contenu n'est pas important pour les développeurs de pages. Toutefois, si vous créez des gestionnaires d'événements qui dépendent de la disponibilité de certains événements, il est utile de comprendre l'ordre des événements dans la page maître et la page de contenu.
La séquence de chargement des événements de page dans Asp.Net
1 Lorsqu'une seule page est exécutée, les événements seront activés dans ce qui suit. order :
Page.PreInit Page.Init Page.InitComplite Page.PreLoad Page.Load Page.LoadComplete Page.PreRender Page.PreRenderComplete
2. Si la page hérite d'une autre page, telle que BasePage:System.Web.UI.Page
, ajoutez une fonction de vérification à BasePage, par exemple si vous êtes connecté. , si vous avez des autorisations, etc. Vérifiez, tandis que d'autres pages héritent de BasePage, la séquence d'activation d'événement de BasePage et de la page finale est :
BasePage.PreInit Page.PreInit BasePage.Init Page.Init BasePage.InitComplite Page.InitComplite BasePage.PreLoad Page.PreLoad BasePage.Load Page.Load BasePage.LoadComplete Page.LoadComplete BasePage.PreRender Page.PreRender BasePage.PreRenderComplete Page.PreRenderComplete
3. Si MasterPage est utilisé, les événements dans MasterPage Et les événements dans ContentPage sont activés dans l'ordre suivant :
ContentPage.PreInit Master.Init ContentPage.Init ContentPage.InitComplite ContentPage.PreLoad ContentPage.Load Master.Load ContentPage.LoadComplete ContentPage.PreRender Master.PreRender ContentPage.PreRenderComplete
Il est à noter qu'il y a aucun événement PreInit dans Master.
4. Si ContentPage hérite de BasePage, alors l'ordre d'exécution de chaque événement deviendra :
BasePage.PreInit ContentPage.PreInit Master.Init BasePage.Init ContentPage.Init BasePage.InitComplite ContentPage.InitComplite BasePage.PreLoad ContentPage.PreLoad BasePage.Load ContentPage.Load Master.Load BasePage.LoadComplete ContentPage.LoadComplete BasePage.PreRender ContentPage.PreRender Master.PreRender BasePage.PreRenderComplete ContentPage.PreRenderComplete
N'oubliez pas : chargez d'abord la page héritée, puis chargez-vous vous-même. Si la page héritée a un héritage, chargez d'abord l'héritage de la page héritée.
Nom du gestionnaire d'événements | Heure d'occurrence | ||||||||||||||||||||
Page_Init td > | Charge le contrôle serveur dans l'état d'affichage du formulaire Web et l'initialise. Il s'agit de la première étape du cycle de vie du formulaire | ||||||||||||||||||||
Page_Load | Charge le contrôle serveur sur l'objet Page. Étant donné que les informations sur l'état d'affichage sont disponibles à ce moment-là, vous pouvez utiliser du code ici pour modifier les paramètres de l'espace ou afficher du texte sur la page. | ||||||||||||||||||||
Page_PreRender | L'application affichera la page | ||||||||||||||||||||
|
Page déchargée de la mémoire | ||||||||||||||||||||
Page_Error | une exception non gérée s'est produite | ||||||||||||||||||||
Page_AbortTransaction | La transaction a été terminée | ||||||||||||||||||||
Page_CommitTransaction | Transaction acceptée | ||||||||||||||||||||
Page_DataBinding | Lier l'espace serveur et la source de données sur la page | ||||||||||||||||||||
Page_Disposed | L'objet Page est libéré de la mémoire. Il s'agit du dernier événement du cycle de vie de l'objet Page |
Séquence d'exécution des événements Init, Load, PreRender :
1) Evénement Init du contrôle
2) Evénement Init de la page où se trouve le contrôle
3) Charger l'événement de la page où se trouve le contrôle
4) Charger l'événement du contrôle
5) Evénement PreRender de la page où se trouve le champ
6) Evénement PreRender du contrôle
Quelques expériences issues de recherches personnelles : (Les deux points suivants peuvent être vérifié en créant une page créée par vous-même et en réécrivant les événements associés)
1. L'événement Init est déclenché du contrôle le plus interne (tel que le contrôle utilisateur) au contrôle le plus externe (page), et d'autres les événements tels que Load et PreRender sont transmis du contrôle le plus externe au contrôle le plus interne.
2. L'ordre d'exécution des mêmes événements entre les contrôles est de gauche à droite et de haut en bas selon la position du contrôle sur la page.
Remarque :
1. N'oubliez pas qu'un contrôle utilisateur est également considéré comme un contrôle sur la page
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!