ASP.NET - Event Handling và những điều bạn cần biết
19/04/2022 11:16
event là một hành động hoặc event xảy ra chẳng hạn như nhấp chuột, nhấn phím, chuyển động của chuột hoặc bất kỳ thông báo nào do hệ thống tạo.
event là một hành động hoặc event xảy ra chẳng hạn như nhấp chuột, nhấn phím, chuyển động của chuột hoặc bất kỳ thông báo nào do hệ thống tạo. Một quá trình giao tiếp thông qua các event. Ví dụ, ngắt là event do hệ thống tạo ra. Khi các event xảy ra, ứng dụng sẽ có thể phản hồi và quản lý nó.
Các event trong ASP.NET được đưa ra ở máy khách và được xử lý ở máy chủ. Ví dụ: người dùng nhấp vào nút được hiển thị trong trình duyệt. Một event Click được đưa ra. Trình duyệt xử lý event phía máy khách này bằng cách đăng nó lên máy chủ.
Máy chủ có một chương trình con mô tả những việc phải làm khi event được đưa ra; nó được gọi là trình xử lý event. Do đó, khi thông báo event được truyền đến máy chủ, nó sẽ kiểm tra xem event Click có một trình xử lý event được liên kết hay không. Nếu có, trình xử lý event sẽ được thực thi.
Đối số event
Các trình xử lý event ASP.NET thường nhận hai tham số và trả về void. Tham số đầu tiên đại diện cho đối tượng nâng cao event và tham số thứ hai là đối số event.
Cú pháp chung của một event là:
private void EventName (object sender, EventArgs e);
event ứng dụng và phiên
Các event ứng dụng quan trọng nhất là:
- Application_Start - Nó được nâng lên khi ứng dụng / trang web được khởi động.
- Application_End - Nó được nâng lên khi ứng dụng / trang web bị dừng.
Tương tự, các event Phiên được sử dụng nhiều nhất là:
- Session_Start - Nó được nâng lên khi người dùng lần đầu tiên yêu cầu một trang từ ứng dụng.
- Session_End - Nó được nâng lên khi phiên kết thúc.
event Trang và Kiểm soát
Các event kiểm soát và trang phổ biến là:
- DataBinding - Nó được nâng lên khi một điều khiển liên kết với một nguồn dữ liệu.
- Đã xử lý - Nó được nâng lên khi trang hoặc điều khiển được giải phóng.
- Lỗi - Đây là một event trang, xảy ra khi một ngoại lệ chưa được xử lý được ném ra.
- Init - Nó được nâng lên khi trang hoặc điều khiển được khởi tạo.
- Tải - Nó được nâng lên khi trang hoặc một điều khiển được tải.
- PreRender - Nó được nâng lên khi trang hoặc điều khiển được hiển thị.
- Unload - Nó được nâng lên khi tải trang hoặc điều khiển khỏi bộ nhớ.
Xử lý event bằng điều khiển
Tất cả các điều khiển ASP.NET được triển khai dưới dạng các lớp và chúng có các event được kích hoạt khi người dùng thực hiện một hành động nhất định trên chúng. Ví dụ: khi người dùng nhấp vào một nút, event 'Nhấp chuột' sẽ được tạo. Để xử lý các event, có các thuộc tính và trình xử lý event tích hợp sẵn. Trình xử lý event được mã hóa để phản hồi một event và thực hiện hành động thích hợp đối với event đó.
Theo mặc định, Visual Studio tạo một trình xử lý event bằng cách bao gồm một mệnh đề Xử lý trên thủ tục con. Mệnh đề này đặt tên cho điều khiển và event mà thủ tục xử lý.
Thẻ ASP cho điều khiển nút:
<asp:Button ID="btnCancel" runat="server" Text="Cancel" />
Trình xử lý event cho event Nhấp chuột:
Protected Sub btnCancel_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Handles btnCancel.Click
End Sub
Một event cũng có thể được mã hóa mà không có điều khoản Xử lý. Sau đó, trình xử lý phải được đặt tên theo thuộc tính event thích hợp của điều khiển.
Thẻ ASP cho điều khiển nút:
<asp:Button ID="btnCancel" runat="server" Text="Cancel" Onclick="btnCancel_Click" />
Trình xử lý event cho event Nhấp chuột:
Protected Sub btnCancel_Click(ByVal sender As Object, ByVal e As System.EventArgs)
End Sub
Các event kiểm soát phổ biến là:
Biến cố |
Thuộc tính |
Kiểm soát |
Nhấp chuột |
Trong một cái nhấp chuột |
Nút, nút hình ảnh, nút liên kết, bản đồ hình ảnh |
Yêu cầu |
OnCommand |
Nút, nút hình ảnh, nút liên kết |
TextChanged |
OnTextChanged |
Hộp văn bản |
SelectedIndexChanged |
OnSelectedIndexChanged |
Danh sách thả xuống, hộp danh sách, danh sách nút radio, danh sách hộp kiểm. |
Đã kiểm tra |
OnCheckedChanged |
Hộp kiểm, nút radio |
Một số event khiến biểu mẫu được đăng trở lại máy chủ ngay lập tức, những event này được gọi là event đăng lại. Ví dụ: event nhấp chuột chẳng hạn như, Nhấp chuột.
Một số event không được đăng trở lại máy chủ ngay lập tức, chúng được gọi là các event không đăng lại.
Ví dụ: các event thay đổi hoặc event lựa chọn như TextBox.TextChanged hoặc CheckBox.CheckedChanged. Các event nonpostback có thể được thực hiện để đăng lại ngay lập tức bằng cách đặt thuộc tính AutoPostBack của chúng thành true.
event mặc định
event mặc định cho đối tượng Trang là event Tải. Tương tự, mọi điều khiển đều có một event mặc định. Ví dụ: event mặc định cho điều khiển nút là event Nhấp chuột.
Trình xử lý event mặc định có thể được tạo trong Visual Studio, chỉ bằng cách bấm đúp vào điều khiển trong dạng xem thiết kế. Bảng sau đây hiển thị một số event mặc định cho các điều khiển chung:
Điều khiển |
event mặc định |
AdRotator |
Đã tạo quảng cáo |
BulletedList |
Nhấp chuột |
Cái nút |
Nhấp chuột |
Bộ lịch |
SelectionChanged |
CheckBox |
Đã kiểm tra |
CheckBoxList |
SelectedIndexChanged |
Lưới dữ liệu |
SelectedIndexChanged |
Danh sách dữ liệu |
SelectedIndexChanged |
Danh sách thả xuống |
SelectedIndexChanged |
HyperLink |
Nhấp chuột |
ImageButton |
Nhấp chuột |
Bản đồ hình ảnh |
Nhấp chuột |
LinkButton |
Nhấp chuột |
ListBox |
SelectedIndexChanged |
Thực đơn |
MenuItemClick |
Nút radio |
Đã kiểm tra |
RadioButtonList |
SelectedIndexChanged |
Ví dụ
Ví dụ này bao gồm một trang đơn giản có điều khiển nhãn và điều khiển nút trên đó. Khi các event trang như Page_Load, Page_Init, Page_PreRender, v.v. diễn ra, nó sẽ gửi một thông báo, được hiển thị bởi điều khiển nhãn. Khi nút được nhấp, event Button_Click được nâng lên và điều đó cũng gửi một thông báo được hiển thị trên nhãn.
Tạo một trang web mới và kéo điều khiển nhãn và điều khiển nút trên đó từ hộp công cụ điều khiển. Sử dụng cửa sổ thuộc tính, đặt ID của các điều khiển là .lblmessage. và .btnclick. tương ứng. Đặt thuộc tính Văn bản của điều khiển Nút là 'Nhấp chuột'.
Tệp đánh dấu (.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>
Nhấp đúp vào dạng xem thiết kế để chuyển đến mã phía sau tệp. event Page_Load được tạo tự động mà không có bất kỳ mã nào trong đó. Viết ra các dòng mã tự giải thích sau:
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/>";
}
}
}
Thực thi trang. Nhãn hiển thị tải trang, khởi tạo trang và các event kết xuất trước trang. Nhấp vào nút để xem hiệu ứng:
Trên đây là các thông tin về Event Handling trong ASP. Net, bạn có thể tham khảo thêm khóa học lập trình ASp.Net nếu muốn hoặc tìm hiểu thông tin về các khóa học lập trình khác thông qua mục Blog của chúng tôi.