ASP.NET
Evenementafhandeling
Zoeken…
Syntaxis
- private ongeldige EventName (afzender van object, EventArgs e);
parameters
Parameter | Details |
---|---|
object afzender | afzender verwijst naar het object dat de gebeurtenis heeft aangeroepen die de gebeurtenishandler heeft geactiveerd. Dit is handig als u veel objecten hebt met dezelfde gebeurtenishandler. |
EventArgs e | EventArgs is iets van een dummy basisklasse. Op zichzelf is het min of meer nutteloos, maar als u hieruit voortkomt, kunt u alle gegevens toevoegen die u aan uw evenementafhandelaars wilt doorgeven. |
Applicatie- en sessie-evenementen
De belangrijkste toepassingsgebeurtenissen zijn:
Application_Start - Wordt geactiveerd wanneer de applicatie / website wordt gestart.
Application_End - Wordt geactiveerd wanneer de applicatie / website wordt gestopt.
Evenzo zijn de meest gebruikte sessie-evenementen:
Session_Start - Wordt weergegeven wanneer een gebruiker voor het eerst een pagina aanvraagt bij de toepassing.
Session_End - Het wordt verhoogd wanneer de sessie eindigt.
Pagina- en besturingsgebeurtenissen
Algemene pagina- en besturingsgebeurtenissen zijn:
Gegevensbinding - wordt geactiveerd wanneer een besturingselement bindt aan een gegevensbron.
Disposed - Wordt opgeheven wanneer de pagina of het besturingselement wordt losgelaten.
Fout - Het is een pagina-gebeurtenis die optreedt wanneer een niet-verwerkte uitzondering wordt gegenereerd.
Init - Wordt verhoogd wanneer de pagina of het besturingselement wordt geïnitialiseerd.
Laden - Het wordt verhoogd wanneer de pagina of een besturingselement wordt geladen.
PreRender - Het wordt verhoogd wanneer de pagina of het besturingselement moet worden weergegeven.
Unload - Wordt verhoogd wanneer de pagina of het besturingselement uit het geheugen wordt verwijderd.
Standaard evenementen
De standaardgebeurtenis voor het object Page is de gebeurtenis Load. Evenzo heeft elk besturingselement een standaardgebeurtenis. De standaardgebeurtenis voor de knopbesturing is bijvoorbeeld de Click-gebeurtenis.
De standaardgebeurtenishandler kan worden gemaakt in Visual Studio, door eenvoudig te dubbelklikken op het besturingselement in de ontwerpweergave. De volgende tabel toont enkele standaardgebeurtenissen voor algemene besturingselementen:
Controle | Standaard evenement |
---|---|
AdRotator | AdCreated |
BulletedList | Klik |
Knop | Klik |
kalender | SelectionChanged |
CheckBox | CheckedChanged |
CheckBoxList | SelectedIndexChanged |
Data rooster | SelectedIndexChanged |
DataList | SelectedIndexChanged |
Keuzelijst | SelectedIndexChanged |
HyperLink | Klik |
ImageButton | Klik |
ImageMap | Klik |
LinkButton | Klik |
Keuzelijst | SelectedIndexChanged |
Menu MenuItem | Klik |
Radio knop | CheckedChanged |
RadioButtonList | SelectedIndexChanged |
Voorbeeld Dit voorbeeld bevat een eenvoudige pagina met een labelbesturing en een knopbesturing erop. Terwijl de pagina-gebeurtenissen zoals Page_Load, Page_Init, Page_PreRender enz. Plaatsvinden, wordt een bericht verzonden dat wordt weergegeven door het labelbesturingselement. Wanneer op de knop wordt geklikt, wordt de gebeurtenis Button_Click verhoogd en wordt ook een bericht verzonden dat op het label wordt weergegeven.
Maak een nieuwe website en sleep een labelbesturingselement en een knopbesturingselement erop vanuit de besturingsset. Stel met behulp van het eigenschappenvenster de ID's van de besturingselementen in als .lblmessage. en .btnclick. respectievelijk. Stel de eigenschap Text van het besturingselement Button in als 'Click'.
Het markup-bestand (.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>
Dubbelklik op de ontwerpweergave om naar de code achter het bestand te gaan. De gebeurtenis Page_Load wordt automatisch gemaakt zonder code. Noteer de volgende zelfverklarende coderegels:
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/>";
}
}
}
Voer de pagina uit. Het label toont het laden van de pagina, de initialisatie van de pagina en de gebeurtenissen voorafgaand aan de weergave. Klik op de knop om het effect te zien: