Bài giảng Giới thiệu về event

Các Event trong chu trình sống của một Ứng dụng Web ƒWeb Form Event ƒServer Control Event

pdf21 trang | Chia sẻ: vietpd | Lượt xem: 1940 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Bài giảng Giới thiệu về event, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Bài giảng môn học Thiết kế & Lập trình WEB 2 GIỚI THIỆU VỀ EVENT Khoa Công nghệ thông tin Trường Đại học Khoa học Tự nhiên Thiết kế & Lập trình WEB 2 –Giới thiệu về Event © 2007 Khoa CNTT – ĐH KHTN Nội dung ƒ Các Event trong chu trình sống của một Ứng dụng Web ƒ Web Form Event ƒ Server Control Event Thiết kế & Lập trình WEB 2 –Giới thiệu về Event © 2007 Khoa CNTT – ĐH KHTN Nội dung ƒ Các Event trong chu trình sống của một Ứng dụng Web ƒ Web Form Event ƒ Server Control Event Thiết kế & Lập trình WEB 2 –Giới thiệu về Event © 2007 Khoa CNTT – ĐH KHTN Các Tập tin trong một Ứng dụng Web ƒ Khi xây dựng một Ứng dụng Web: – Visual Studio .NET biên dịch tất cả mã nguồn vào một file .DLL lưu trong thư mục /bin – Phần giao diện của ứng dụng nằm ở các file .aspx và .html Thiết kế & Lập trình WEB 2 –Giới thiệu về Event © 2007 Khoa CNTT – ĐH KHTN Các Event trong chu trình sống của một Ứng dụng Web ƒ Chu trình sống của một ứng dụng web – Bắt đầu khi một trình duyệt yêu cầu 1 trang web từ ứng dụng, gọi là Session – Ứng dụng web vẫn chạy nếu như nó vẫn còn Session đang hoạt động – Chu trình sống của 1 Web Form chỉ tồn tại trong 1 khoảng thời gian ngắn Thiết kế & Lập trình WEB 2 –Giới thiệu về Event © 2007 Khoa CNTT – ĐH KHTN Các Event trong chu trình sống của một Ứng dụng Web ƒ Chu trình sống tiếp tục –Người dùng tương tác với giao diện web (gõ vào text box, đánh dấu chọn các check box…) cho đến khi kích hoạt một sự kiện post-back (nhấn button …) – Dữ liệu của trang (view state) được gửi về cho server – Khi server nhận được view state ¾Nó tạo ra thể hiện mới của Web Form ¾Điền dữ liệu vào view state ¾Xử lý các sự kiện xảy ra ¾Trả kết quả HTML về cho trình duyệt và hủy thể hiện của Web Form Thiết kế & Lập trình WEB 2 –Giới thiệu về Event © 2007 Khoa CNTT – ĐH KHTN Các Event trong chu trình sống của một Ứng dụng Web ƒ Chu trình sống tiếp tục Thiết kế & Lập trình WEB 2 –Giới thiệu về Event © 2007 Khoa CNTT – ĐH KHTN Các Event trong chu trình sống của một Ứng dụng Web ƒ Chu trình sống kết thúc – Khi người dùng tắt trình duyệt, hoặc sau một khoảng thời gian không refesh lại trang web thì Session của người dùng kết thúc – Nếu không còn Session nào từ người dùng thì ứng dụng web sẽ kết thúc Bạn không biết được chính xác khi nào thì sự kiện Application_End xảy ra (ASPNET: GC, OLE: Ref counting) Thiết kế & Lập trình WEB 2 –Giới thiệu về Event © 2007 Khoa CNTT – ĐH KHTN Nội dung ƒ Các Event trong chu trình sống của một Ứng dụng Web ƒ Web Form Event ƒ Server Control Event Thiết kế & Lập trình WEB 2 –Giới thiệu về Event © 2007 Khoa CNTT – ĐH KHTN -Dữ liệu trạng thái của Web form -Các biến trạng thái của Application -Các biến trạng thái của Session – Dữ liệu nhập vào trong các control được khởi tạo trong sự kiện Page_Init – Càc dữ liệu này sau đó được nạp lại vào control trong sự kiện Page_Load Lưu trữ dữ liệu trên một Web Form ƒ Vì Web Form có chu trình sống rất ngắn nên ASP.NET có cơ chế đặc biệt để lưu trữ dữ liệu nhập vào trong các control của web form View State Thiết kế & Lập trình WEB 2 –Giới thiệu về Event © 2007 Khoa CNTT – ĐH KHTN Application & Session ƒ Các biến trạng thái Application – Chia sẽ dự liệu cho tất cả người dùng của một ứng dụng (dữ liệu toàn cục cho đa người dùng) ƒ Các biến trạng thái Session – Chia sẽ dữ liệu cho nhiều Web Form trong cùng một Session – Chỉ có session hiện hành có khả năng truy cập đến biến trạng thái Session của chính nó Thiết kế & Lập trình WEB 2 –Giới thiệu về Event © 2007 Khoa CNTT – ĐH KHTN Application & Session protected void btnShow_Click(object sender, EventArgs e) { // Save the number of clicks in Session state. Session("Clicks") = Session("Clicks") + 1; // Display the number of clicks. Response.Write("Number of clicks: " + Session("Clicks")); } Thiết kế & Lập trình WEB 2 –Giới thiệu về Event © 2007 Khoa CNTT – ĐH KHTN Sự kiện Application và Session Tên sự kiện Xảy ra khi Application_Start Người dùng đầu tiên ghé thăm 1 trang web trong ứng dụng web Application_End Không còn người dùng nào đang mở trang web của ứng dụng Application_Error Khi có lỗi xảy ra trong ứng dụng Session_Start Một người dùng mới ghé thăm 1 trang web của ứng dụng Session_End Người dùng đóng trình duyệt hoặc sau một khoảng thời gian time out không request lên ứng dụng Thiết kế & Lập trình WEB 2 –Giới thiệu về Event © 2007 Khoa CNTT – ĐH KHTN Sự kiện Application và Session void Application_Start(object sender, EventArgs e) { ' Record application start. Application("AppCount") = Application("AppCount") + 1; } void Session_Start(object sender, EventArgs e) { ' Count sessions. Application("SessCount") = Application("SessCount") + 1; ' Display session count. Response.Write("Number of applications: " + Application("AppCount") +""); ' Display session count. Response.Write("Number of sessions: " + Application("SessCount") + ""); } void Session_End(object sender, EventArgs e) { ' Decrement sessions. Application("SessCount") = Application("SessCount") – 1; } Thiết kế & Lập trình WEB 2 –Giới thiệu về Event © 2007 Khoa CNTT – ĐH KHTN Vấn đề??? void Application_Start(object sender, EventArgs e) { ' Record application start. Application("AppCount") = Application("AppCount") + 1; } void Session_Start(object sender, EventArgs e) { ' Count sessions. Session("SessCount") = Session("SessCount") + 1; ' Display session count. Response.Write("Number of applications: " + Session("AppCount") +""); ' Display session count. Response.Write("Number of sessions: " + Session("SessCount") + ""); } void Session_End(object sender, EventArgs e) { ' Decrement sessions. Application("SessCount") = Application("SessCount") – 1; } Thiết kế & Lập trình WEB 2 –Giới thiệu về Event © 2007 Khoa CNTT – ĐH KHTN Vấn đề??? void Application_Start(object sender, EventArgs e) { ' Record application start. Session("AppCount") = Session("AppCount") + 1; } void Session_Start(object sender, EventArgs e) { ' Count sessions. Session("SessCount") = Session("SessCount") + 1; ' Display session count. Response.Write("Number of applications: " + Session("AppCount") +""); ' Display session count. Response.Write("Number of sessions: " + Session("SessCount") + ""); } void Session_End(object sender, EventArgs e) { ' Decrement sessions. Session("SessCount") = Session("SessCount") – 1; } Thiết kế & Lập trình WEB 2 –Giới thiệu về Event © 2007 Khoa CNTT – ĐH KHTN Page Event Tên sự kiện Xảy ra khi Page_Init Các server control được nạp và khởi tạo trong view state của web form. Page_Load Các server control được nạp lên đối tượng Page. Tại thời điểm này thông tin của View state đã có thể sử dụng được, do đó đây là lúc bạn viết mã lệnh thay đổi thiết lập của control hoặc hiển thị dữ liệu lên trang. Page_PreRender Ứng dụng sắp sửa dàn trang cho đối tượng Page. Page_Unload Trang được hủy khỏi bộ nhớ. Thiết kế & Lập trình WEB 2 –Giới thiệu về Event © 2007 Khoa CNTT – ĐH KHTN Page Event Tên sự kiện Xảy ra khi Page_Error Khi có lỗi không được xử lý xảy ra trong trang. Page_DataBinding Server control trên trang được gắn kết với nguồn dữ liệu. Page_Disposed Đối tượng Page được giải phóng khỏi bộ nhớ. Thiết kế & Lập trình WEB 2 –Giới thiệu về Event © 2007 Khoa CNTT – ĐH KHTN Nội dung ƒ Các Event trong chu trình sống của một Ứng dụng Web ƒ Web Form Event ƒ Server Control Event Thiết kế & Lập trình WEB 2 –Giới thiệu về Event © 2007 Khoa CNTT – ĐH KHTN Server Control Event ƒ Post-back event – Bắt Web page gửi về lại cho server để xử lý ngay lập tức. ƒ Validation event – Xử lý trên trang mà không cần sự kiện post-back. Thiết kế & Lập trình WEB 2 –Giới thiệu về Event © 2007 Khoa CNTT – ĐH KHTN Server Control Event – TextBox, DropDownList, ListBox, RadioButton, CheckBox – Có thể thiết lập sự kiện Post-back cho các control này bằng cách gán thuộc tính AutoPostBack=True ƒ Validation event – Validation server controls ƒ Post-back event – Button, Link Button, Image Button