CÁC GIẢI PHÁP LẬP TRÌNH C# - Trang 243

243

Chương 7: ASP.NET và Web Form

lblData.Text += "<b>Found query string data:</b> " + data + "<br>";

}

3.

3.

T o các bi n thành viên có tr ng thái cho trang

ế

T o các bi n thành viên có tr ng thái cho trang

ế

Bạn cần tạo các biến thành viên trong lớp trang và bảo đảm các giá trị của
chúng được giữ lại khi trang được post-back.

Phản ứng với sự kiện

Page.PreRender

, và ghi tất cả các biến thành viên vào view

state. Phản ứng với sự kiện

Page.Load

, và lấy tất cả các giá trị của các biến thành

viên từ view state. Phần mã còn lại của bạn giờ đây có thể tương tác với các biến
này mà không phải lo lắng các vấn đề về trạng thái.

ASP.NET cung cấp nhiều cơ chế trạng thái, như đã được mô tả trong mục 7.2. Tuy nhiên, bạn
không thể sử dụng chúng một cách tự động—tất cả đều đòi hỏi một đoạn mã để đặt thông tin
vào và lấy thông tin ra. Bạn có thể thực hiện các công việc này một lần. Khi đó, phần mã còn
lại của bạn có thể tương tác trực tiếp với biến thành viên.
Để cách tiếp cận này có thể làm việc được, bạn cần đọc các giá trị của biến vào đầu mỗi
postback. Sự kiện

Page.Load

là một chọn lựa lý tưởng cho đoạn mã này vì nó luôn phát sinh

trước bất cứ sự kiện điều khiển nào khác. Bạn có thể sử dụng phương thức thụ lý sự kiện

Page.Load

để khởi dựng tất cả các biến. Ngoài ra, bạn cần lưu trữ tất cả các biến trước khi

trang được gửi cho người dùng, sau khi tất cả việc xử lý đã hoàn tất. Trong trường hợp này,
bạn có thể đáp ứng cho sự kiện

Page.PreRender

, vì sự kiện này phát sinh sau tất cả các

phương thức thụ lý sự kiện khác, chỉ trước khi trang được chuyển thành HTML và gửi cho
client.
Trang ví dụ sau đây trình bày cách duy trì một biến thành viên của trang có tên là

memberValue

:

using System;

using System.Web;

using System.Web.UI.WebControls;

public class StatefulMembers : System.Web.UI.Page {

// (Bỏ qua phần mã designer.)

private int memberValue = 0;

private void Page_Load(object sender, System.EventArgs e) {

// Nạp lại tất cả các biến thành viên.

if (ViewState["memberValue"] != null) {

memberValue = (int)ViewState["memberValue"];

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.