Cette section vous présente la gestion des événements ASP.NET.
Un événement est une action ou une occurrence, telle qu'un clic de souris, une pression sur une touche, un mouvement de la souris ou toute notification générée par le système. Un processus communique à travers des événements. Par exemple, les interruptions sont des événements générés par le système. Lorsque des événements se produisent, les applications peuvent y répondre et les gérer.
Les événements sur ASP.NET sont déclenchés sur la machine de l'utilisateur et traités sur le serveur. Par exemple, un utilisateur clique sur un bouton affiché dans un navigateur. Un événement de clic est déclenché. Le navigateur gère cet événement côté client en l'envoyant au serveur.
Le serveur dispose d'un sous-programme qui décrit ce qu'il faut faire lorsqu'un événement est déclenché ; c'est ce qu'on appelle un gestionnaire d'événements. Par conséquent, lorsque les informations sur l'événement sont transmises au serveur, celui-ci vérifie si l'événement de clic est associé à un gestionnaire d'événements. Le cas échéant, le gestionnaire d'événements sera exécuté.
Les gestionnaires d'événements ASP.NET prennent généralement deux paramètres et renvoient null. Le premier paramètre représente l'objet déclenchant l'événement et le deuxième paramètre est le paramètre d'événement.
La syntaxe générale d'un événement est la suivante :
private void EventName (object sender, EventArgs e);
Les événements de candidature les plus importants sont :
Application_Start - Déclenché lorsqu'une application ou une page Web est lancée.
Application_End - Déclenché lors de l'arrêt d'une application ou d'une page Web.
De même, les événements de session les plus couramment utilisés sont :
Session_Start – Déclenché lorsque l'utilisateur demande initialement une page à l'application.
Session_End – Déclenché à la fin de la session.
Les événements courants de page et de contrôle sont :
DataBinding – Déclenché lorsqu'un contrôle est lié à une source de données.
Disposé – Déclenché lorsque la page ou le contrôle est relâché.
Erreur – Il s'agit d'un événement de page qui se produit en cas d'exception non gérée.
Init – Déclenché lors de l’initialisation d’une page ou d’un contrôle.
Charger – Déclenché lorsqu’une page ou un contrôle est chargé.
PreRender – Déclenché lorsque la page ou le contrôle est affiché.
Décharger – Déclenché lorsqu'une page ou un contrôle est déchargé de la mémoire.
Tous les contrôles ASP.NET sont implémentés sous forme de classes et déclenchent des événements lorsque l'utilisateur effectue une action spécifique sur eux. Par exemple, lorsqu'un utilisateur clique sur un bouton, un événement « Clic » est généré. Pour gérer les événements, il existe des propriétés et des gestionnaires d'événements intégrés. Les applications de gestion d'événements sont codées pour répondre à un événement et prendre les mesures appropriées.
Par défaut, Visual Studio crée un gestionnaire d'événements qui inclut un sous-programme qui gère la clause. Cette clause nomme les contrôles et les événements gérés par le programme.
Balise ASP pour le contrôle des boutons :
<asp:Button ID="btnCancel" runat="server" Text="Cancel" />
Application de gestion d'événements pour l'événement Click :
Protected Sub btnCancel_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnCancel.ClickEnd Sub
Un événement peut également être codé sans clause Handles. Le gestionnaire doit ensuite être nommé d'après l'événement approprié qui correspond à la propriété du contrôle.
Balise ASP pour le contrôle des boutons :
<asp:Button ID="btnCancel" runat="server" Text="Cancel" Onclick="btnCancel_Click" />
Application de gestion d'événements pour l'événement Click :
Protected Sub btnCancel_Click(ByVal sender As Object, ByVal e As System.EventArgs)End Sub
Les événements de contrôle courants incluent :
événement | propriété | contrôle |
---|---|---|
Cliquez | SurClic | bouton, bouton image, bouton lien, image bitmap |
Commande | Sur Commande | bouton, bouton image, bouton lien |
TexteModifié | SurTexteChanged | zone de texte |
SelectedIndexChanged | SurSelectedIndexChanged | Menu déroulant, liste déroulante, liste de boutons radio, liste déroulante avec cases à cocher |
VérifiéModifié | SurVérifiéModifié | case à cocher, bouton radio |
Certains événements entraînent la publication immédiate du formulaire sur le serveur ; ils sont appelés événements de rappel. Par exemple, cliquez sur des événements comme Button.Click.
Certains événements ne sont pas renvoyés immédiatement au serveur. On les appelle des événements sans rappel.
Par exemple, modifiez les événements ou les événements de sélection comme TextBox.TextChanged ou CheckBox.CheckedChanged. Ces événements sans rappel peuvent être immédiatement rappelés en définissant leur propriété AutoPostBack sur true.
L'événement par défaut pour les objets de page est l'événement de chargement. De même, chaque contrôle a un événement par défaut. Par exemple, l'événement par défaut d'un contrôle bouton est l'événement Click.
Les gestionnaires d'événements par défaut peuvent être créés dans Visual Studio en double-cliquant simplement sur un contrôle en mode Création. Le tableau suivant présente les événements par défaut pour une liste de contrôles courants :
contrôle | événement par défaut |
---|---|
Contrôle de la publicité (AdRotator) | Annonce créée |
Liste d'éléments (BulletedList) | Cliquez |
Bouton | Cliquez |
Champ Calendrier (Calendrier) | SélectionModifiée |
Case à cocher | VérifiéModifié |
Liste de cases à cocher | SelectedIndexChanged |
Grille de données | SelectedIndexChanged |
Liste de données | SelectedIndexChanged |
Liste déroulante | SelectedIndexChanged |
Lien hypertexte | Cliquez |
Bouton Image | Cliquez |
Point chaud (ImageMap) | Cliquez |
Bouton lien hypertexte (LinkButton) | Cliquez |
Liste déroulante à sélection unique ou multiple (ListBox) | SelectedIndexChanged |
Menu | MenuItemClick |
Bouton Radio | VérifiéModifié |
Groupe de boutons radio (RadioButtonList) | SelectedIndexChanged |
Exemple
Cet exemple inclut une page simple avec des étiquettes de contrôle et un contrôle de bouton. Lorsque des événements de page, tels que Page_Load, Page_Init, Page_PreRender, etc., se produisent, il enverra un message qui sera affiché par le contrôle d'étiquette. Lorsqu'un bouton est cliqué, l'événement Button_Click est déclenché, envoyant également un message affiché par l'étiquette.
Créez un nouveau site Web et faites glisser un contrôle Label et un contrôle Button depuis la boîte à outils Contrôles. À l’aide des propriétés de la fenêtre, définissez les ID de contrôle sur .lblmessage et .btnclick en conséquence. Définissez la propriété text du contrôle bouton sur « Clic ».
Fichier de balisage (.aspx) :
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="eventdemo._Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>Untitled Page</title> </head> <body> <form id="form1" runat="server"> <div> <asp:Label ID="lblmessage" runat="server" > </asp:Label> <br /> <br /> <br /> <asp:Button ID="btnclick" runat="server" Text="Click" onclick="btnclick_Click" /> </div> </form> </body></html>
Double-cliquez sur la vue conception et accédez au code derrière le fichier. L'événement Page_Load est créé automatiquement sans aucun code. Écrivez la ligne de code explicite suivante :
using System;using System.Collections;using System.Configuration;using System.Data;using System.Linq;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.HtmlControls;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Xml.Linq;namespace eventdemo { public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { lblmessage.Text += "Page load event handled. <br />"; if (Page.IsPostBack) { lblmessage.Text += "Page post back event handled.<br/>"; } } protected void Page_Init(object sender, EventArgs e) { lblmessage.Text += "Page initialization event handled.<br/>"; } protected void Page_PreRender(object sender, EventArgs e) { lblmessage.Text += "Page prerender event handled. <br/>"; } protected void btnclick_Click(object sender, EventArgs e) { lblmessage.Text += "Button click event handled. <br/>"; } }}
Exécuter la page. Les balises affichent les événements de chargement de page, d’initialisation de page et d’aperçu de page. Cliquez sur le bouton pour voir l'effet :