Comment : consommer des événements dans une application Web Forms
Mise à jour : novembre 2007
Un scénario courant dans les applications Web Forms est de remplir une page Web de contrôles, puis d'exécuter une action spécifique selon le contrôle sur lequel l'utilisateur clique. Par exemple, un contrôle System.Web.UI.WebControls.Button déclenche un événement lorsque l'utilisateur clique dessus dans la page Web. En gérant l'événement, votre application peut exécuter la logique d'application appropriée à un clic sur ce bouton.
Pour plus d'informations sur le modèle de programmation Web Forms, consultez Programmation de Web Forms.
Pour gérer un événement lié à un clic sur un bouton dans une page Web
Créez une page Web Forms (page ASP.NET) contenant un contrôle Button.
<asp:Button id = "Button" Text = "Click Me" runat = server/>
Définissez un gestionnaire d'événements qui correspond à la signature du délégué d'événement Click. L'événement Click utilise la classe EventHandler pour le type délégué et la classe EventArgs pour les données d'événement.
void Button_Click(object sender, EventArgs e) {...}
Sub Button_Click(sender As Object, e As EventArgs) ... End Sub
Indiquez la méthode de gestionnaire d'événements comme valeur de l'attribut OnClick de l'élément Button.
<asp:Button id = "Button" OnClick = "Button_Click" Text = "Click Me" runat = server/>
Remarque : Un développeur d'applications Web Forms peut installer l'événement de façon déclarative comme indiqué, sans directement utiliser le délégué. L'infrastructure de page ASP.NET génère du code qui crée une instance d'EventHandler référençant Button_Click et ajoute cette instance de délégué à l'événement Click de l'instance Button.
Exemple
La page Web Forms suivante gère l'événement Click de Button pour changer la couleur d'arrière-plan de TextBox. Les éléments en gras dans cet exemple indiquent le code du gestionnaire d'événements et le mode de connexion du gestionnaire d'événements à l'événement Click de Button.
Note de sécurité : |
---|
Cet exemple a une zone de texte qui accepte l'entrée d'utilisateur, qui constitue une menace éventuelle pour la sécurité. Par défaut, les pages Web ASP.NET vérifient que les entrées d'utilisateur n'incluent pas de script ou d'éléments HTML. Pour plus d'informations, consultez Vue d'ensemble des attaques de script. |
[C#]
<html>
<script language="C#" runat=server>
private void Button_Click(object sender, EventArgs e){ Box.BackColor = System.Drawing.Color.LightGreen; }
</script>
<body>
<form method="POST" action="Events.aspx" runat=server>
Click the button, and notice the color of the text box.<br><br>
<asp:TextBox
id = "Box" Text = "Hello" BackColor = "Cyan" runat=server/>
<br><br>
<asp:Button
id = "Button" OnClick = "Button_Click" Text = "Click Me"
runat = server/>
</form>
</body>
</html>
<html>
<script language="VB" runat=server>
Private Sub Button_Click(sender As Object, e As EventArgs) Box.BackColor = System.Drawing.Color.LightGreen
End Sub
</script>
<body>
<form method="POST" action="Events.aspx" runat=server>
Click the button, and notice the color of the text box.<br><br>
<asp:TextBox
id = "Box" Text = "Hello" BackColor = "Cyan" runat=server/>
<br><br>
<asp:Button
id = "Button" OnClick = "Button_Click" Text = "Click Me"
runat = server/>
</form>
</body>
</html>
Compilation du code
Pour voir la façon dont la gestion des événements fonctionne dans Web Forms, enregistrez l'exemple de page dans un fichier portant une extension .aspx (qui indique que le fichier est une page ASP.NET) et déployez-le dans un endroit quelconque de votre répertoire racine virtuel IIS.