ASP.NET
Obsługa zdarzeń
Szukaj…
Składnia
- private void EventName (nadawca obiektu, EventArgs e);
Parametry
Parametr | Detale |
---|---|
nadawca obiektu | nadawca odnosi się do obiektu, który wywołał zdarzenie, które wywołało moduł obsługi zdarzenia. Jest to przydatne, jeśli masz wiele obiektów korzystających z tej samej procedury obsługi zdarzeń. |
EventArgs e | EventArgs to atrapa klasy podstawowej. Sam w sobie jest mniej lub bardziej bezużyteczny, ale jeśli z niego wywodzisz, możesz dodać dowolne dane, które musisz przekazać do programów obsługi zdarzeń. |
Zdarzenia dotyczące aplikacji i sesji
Najważniejsze zdarzenia związane z aplikacją to:
Application_Start - Powstaje przy uruchomieniu aplikacji / strony internetowej.
Application_End - Powstaje, gdy aplikacja / strona internetowa zostanie zatrzymana.
Podobnie najczęściej używane zdarzenia sesji to:
Session_Start - Powstaje, gdy użytkownik po raz pierwszy zażąda strony z aplikacji.
Session_End - Powstaje po zakończeniu sesji.
Zdarzenia stron i kontroli
Typowe zdarzenia strony i sterowania to:
DataBinding - jest wywoływane, gdy formant wiąże się ze źródłem danych.
Disposed - Jest podnoszony, gdy strona lub kontrolka jest zwolniona.
Błąd - jest to zdarzenie strony, które występuje, gdy zostanie zgłoszony nieobsługiwany wyjątek.
Init - Powstaje przy inicjalizacji strony lub formantu.
Ładuj - jest podnoszony, gdy ładowana jest strona lub kontrolka.
PreRender - Powstaje, gdy strona lub kontrolka ma być renderowana.
Unload - Jest podnoszony, gdy strona lub kontrolka są zwalniane z pamięci.
Domyślne zdarzenia
Domyślnym zdarzeniem dla obiektu strony jest Zdarzenie ładowania. Podobnie każda kontrolka ma zdarzenie domyślne. Na przykład domyślnym zdarzeniem dla kontrolki przycisku jest zdarzenie Click.
Domyślną procedurę obsługi zdarzeń można utworzyć w programie Visual Studio, klikając dwukrotnie formant w widoku projektu. W poniższej tabeli przedstawiono niektóre domyślne zdarzenia typowych elementów sterujących:
Kontrola | Domyślne zdarzenie |
---|---|
AdRotator | AdCreated |
BulletedList | Kliknij |
Przycisk | Kliknij |
Kalander | SelectionChanged |
CheckBox | CheckedChanged |
CheckBoxList | SelectedIndexChanged |
Siatka danych | SelectedIndexChanged |
DataList | SelectedIndexChanged |
Lista rozwijana | SelectedIndexChanged |
HyperLink | Kliknij |
ImageButton | Kliknij |
ImageMap | Kliknij |
LinkButton | Kliknij |
Skrzynka na listy | SelectedIndexChanged |
Menu Menu Pozycja | Kliknij |
Przycisk radiowy | CheckedChanged |
RadioButtonList | SelectedIndexChanged |
Przykład Ten przykład zawiera prostą stronę z kontrolką etykiety i kontrolką przycisku. Gdy mają miejsce zdarzenia strony, takie jak Page_Load, Page_Init, Page_PreRender itp., Wysyła komunikat wyświetlany przez kontrolkę etykiet. Po kliknięciu przycisku wywoływane jest zdarzenie Button_Click, które również wysyła komunikat do wyświetlenia na etykiecie.
Utwórz nową stronę internetową i przeciągnij na nią kontrolkę etykiety i kontrolkę przycisku z przybornika kontroli. Korzystając z okna właściwości, ustaw identyfikatory kontrolek jako .lblmessage. i .btnclick. odpowiednio. Ustaw właściwość Text kontrolki Button na „Click”.
Plik znaczników (.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>
Kliknij dwukrotnie widok projektu, aby przejść do kodu za plikiem. Zdarzenie Page_Load jest tworzone automatycznie bez kodu. Zapisz następujące, zrozumiałe linie kodu:
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/>";
}
}
}
Wykonaj stronę. Etykieta pokazuje ładowanie strony, inicjalizację strony oraz zdarzenia wstępne renderowania strony. Kliknij przycisk, aby zobaczyć efekt: