Quyền truy cập mạnh vào trang trước trong quá trình đăng lại trang chéo

ASP.NET 2.0 giới thiệu khái niệm về postbacks chéo trang, nơi một trang có thể postback thông tin đến một trang khác với chính nó. Điều này được thực hiện bằng cách thiết lập thuộc tính PostBackUrl của một nút để tên của trang mà nút nên gửi lại dữ liệu. Thông thường, các dữ liệu được đăng có thể được truy cập bằng cách làm một cái gì đó như PreviousPage.FindControl (“ControlID”). Tuy nhiên, điều này đòi hỏi một diễn viên nếu bạn cần truy cập tài sản của kiểm soát mục tiêu trong trang trước đó (mà bạn thường phải làm). Nếu bạn thêm thuộc tính công cộng vào trang mã phía sau để khởi tạo hoạt động postback, bạn có thể truy cập vào thuộc tính theo cách mạnh mẽ bằng cách thêm chỉ thị PreviousPageType vào trang đích của postback.

Ví dụ: nếu bạn có trang gọi là Default.aspx để hiển thị thuộc tính công khai trả về một Textbox được định nghĩa trong trang, trang mà dữ liệu được đăng lên (cho phép gọi nó là SearchResults.aspx) có thể truy cập vào thuộc tính đó một cách mạnh mẽ (không có lệnh FindControl () là cần thiết) bằng cách thêm chỉ thị PreviousPageType vào đầu trang:

<% @ PreviousPageType VirtualPath = “Default.aspx” %>

Bằng cách thêm chỉ thị này, mã trong SearchResults.aspx có thể truy cập TextBox được định nghĩa trong Default.aspx theo cách mạnh mẽ. Ví dụ sau giả định thuộc tính được định nghĩa trong Default.aspx có tên SearchTextBox.

TextBox tb = PreviousPage.SearchTextBox;

Mã này rõ ràng chỉ hoạt động nếu trang trước đó là Default.aspx. PreviousPageType cũng có thuộc tính TypeName cũng như nơi bạn có thể định nghĩa một kiểu cơ sở mà một hoặc nhiều trang được tạo ra để làm cho kỹ thuật này hoạt động với nhiều trang.

Leave a Reply

Your email address will not be published. Required fields are marked *