Bagian ini memperkenalkan Anda pada penanganan event ASP.NET.
Peristiwa adalah suatu tindakan atau kejadian, seperti klik mouse, penekanan tombol, gerakan mouse, atau pemberitahuan apa pun yang dihasilkan sistem. Suatu proses berkomunikasi melalui peristiwa. Misalnya, interupsi adalah peristiwa yang dihasilkan sistem. Ketika peristiwa terjadi, aplikasi dapat merespons dan mengelolanya.
Peristiwa di ASP.NET dimunculkan di mesin pengguna dan diproses di server. Misalnya, pengguna mengklik tombol yang ditampilkan di browser. Acara klik dimunculkan. Browser menangani kejadian sisi klien ini dengan mengirimkannya ke server.
Server memiliki subrutin yang menjelaskan apa yang harus dilakukan ketika suatu peristiwa dimunculkan; ini disebut pengendali peristiwa. Oleh karena itu, ketika informasi peristiwa diteruskan ke server, ia memeriksa apakah peristiwa klik dikaitkan dengan pengendali peristiwa. Jika relevan, event handler akan dieksekusi.
Pengendali kejadian ASP.NET biasanya mengambil dua parameter dan mengembalikan null. Parameter pertama mewakili objek yang memicu peristiwa, dan parameter kedua adalah parameter peristiwa.
Sintaks umum untuk suatu acara adalah:
private void EventName (object sender, EventArgs e);
Peristiwa aplikasi yang paling penting adalah:
Application_Start - Dimunculkan saat aplikasi atau halaman web diluncurkan.
Application_End - Dimunculkan saat menghentikan aplikasi atau halaman web.
Demikian pula, acara sesi yang paling umum digunakan adalah:
Session_Start – Diaktifkan saat pengguna pertama kali meminta halaman dari aplikasi.
Session_End – Dimunculkan saat sesi berakhir.
Peristiwa halaman dan kontrol yang umum adalah:
Pengikatan Data – Dimunculkan saat kontrol terikat ke sumber data.
Dibuang – Dimunculkan saat halaman atau kontrol dilepaskan.
Kesalahan – Ini adalah peristiwa halaman yang terjadi ketika ada pengecualian yang tidak tertangani.
Init – Dimunculkan saat menginisialisasi halaman atau kontrol.
Muat – Dimunculkan saat halaman atau kontrol dimuat.
PraRender – Dimunculkan saat halaman atau kontrol ditampilkan.
Bongkar – Dimunculkan ketika halaman atau kontrol dikeluarkan dari memori.
Semua kontrol ASP.NET diimplementasikan sebagai kelas, dan memunculkan peristiwa ketika pengguna melakukan tindakan tertentu pada kelas tersebut. Misalnya, saat pengguna mengklik tombol, peristiwa 'Klik' akan dihasilkan. Untuk menangani event, ada properti dan event handler bawaan. Aplikasi penanganan peristiwa diberi kode untuk merespons suatu peristiwa dan mengambil tindakan yang sesuai.
Secara default, Visual Studio membuat event handler yang menyertakan subrutin yang menangani klausa. Klausa ini memberi nama kontrol dan kejadian yang ditangani program.
Tag ASP untuk kontrol tombol:
<asp:Button ID="btnCancel" runat="server" Text="Cancel" />
Aplikasi penanganan acara untuk acara Klik:
Protected Sub btnCancel_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnCancel.ClickEnd Sub
Suatu peristiwa juga dapat dikodekan tanpa klausa Handles. Penangan kemudian harus diberi nama sesuai dengan peristiwa yang sesuai dengan properti kontrol.
Tag ASP untuk kontrol tombol:
<asp:Button ID="btnCancel" runat="server" Text="Cancel" Onclick="btnCancel_Click" />
Aplikasi penanganan acara untuk acara Klik:
Protected Sub btnCancel_Click(ByVal sender As Object, ByVal e As System.EventArgs)End Sub
Peristiwa pengendalian yang umum meliputi:
peristiwa | milik | kontrol |
---|---|---|
Klik | DiKlik | tombol, tombol gambar, tombol tautan, bitmap gambar |
Memerintah | Sesuai Perintah | tombol, tombol gambar, tombol tautan |
Teks Berubah | OnTextChanged | kotak teks |
Indeks Terpilih Berubah | PadaSelectedIndexBerubah | Menu tarik-turun, kotak daftar, daftar tombol radio, kotak daftar dengan kotak centang |
DiperiksaBerubah | Pada Diperiksa Berubah | kotak centang, tombol radio |
Beberapa peristiwa menyebabkan formulir dikirim kembali ke server dengan segera, ini disebut peristiwa panggilan balik. Misalnya, acara klik seperti Button.Click.
Beberapa peristiwa tidak segera dikirim kembali ke server. Ini disebut peristiwa non-panggilan balik.
Misalnya, mengubah acara atau acara pilihan seperti TextBox.TextChanged atau CheckBox.CheckedChanged. Peristiwa non-panggilan balik ini dapat segera dipanggil kembali dengan menyetel properti AutoPostBack ke true.
Event default untuk objek halaman adalah event load. Demikian pula, setiap kontrol memiliki kejadian default. Misalnya, event default untuk kontrol tombol adalah event Click.
Pengendali kejadian default dapat dibuat di Visual Studio hanya dengan mengklik dua kali kontrol dalam tampilan Desain. Tabel berikut memperlihatkan kejadian default untuk daftar kontrol umum:
kontrol | acara bawaan |
---|---|
Kontrol periklanan (AdRotator) | IklanDibuat |
Daftar Item (Daftar Butir) | Klik |
Tombol | Klik |
Kontrol kalender (Kalender) | Seleksi Berubah |
Kotak Centang | DiperiksaBerubah |
Daftar Kotak Centang | Indeks Terpilih Berubah |
Jaringan Data | Indeks Terpilih Berubah |
Daftar Data | Indeks Terpilih Berubah |
Daftar DropDown | Indeks Terpilih Berubah |
HyperLink | Klik |
Tombol Gambar | Klik |
Hotspot (Peta Gambar) | Klik |
Tombol hyperlink (Tombol Tautan) | Klik |
Daftar drop-down pilihan tunggal atau ganda (ListBox) | Indeks Terpilih Berubah |
Menu | Item MenuKlik |
Tombol Radio | DiperiksaBerubah |
Grup tombol radio (RadioButtonList) | Indeks Terpilih Berubah |
Contoh
Contoh ini mencakup halaman sederhana dengan label kontrol dan kontrol tombol. Ketika peristiwa halaman, seperti Page_Load, Page_Init, Page_PreRender, dll., terjadi, pesan akan dikirim, yang akan ditampilkan oleh kontrol label. Ketika sebuah tombol diklik, event Button_Click dimunculkan, juga mengirimkan pesan yang ditampilkan oleh label.
Buat situs web baru dan seret kontrol Label dan kontrol Tombol dari kotak alat Kontrol. Dengan menggunakan properti jendela, atur ID kontrol ke .lblmessage dan .btnclick. Setel properti teks kontrol tombol ke "Klik".
Berkas marka (.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>
Klik dua kali tampilan desain dan pindah ke kode di belakang file. Acara Page_Load dibuat secara otomatis tanpa kode apa pun. Tulis baris kode yang cukup jelas berikut ini:
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/>"; } }}
Jalankan halaman. Tag menunjukkan pemuatan halaman, inisialisasi halaman, dan peristiwa pratinjau halaman. Klik tombol untuk melihat efeknya: