七使用PreviousPageType
PreviousPageType屬性提供了在跨網頁操作中訪問源頁面的強類型能力下面讓我們演示一下如何不通過任何類型轉換來從源頁面中獲得控件值代碼如下
<asp:Textbox ID=
txtUserName
Runat=
server
/>
<asp:Textbox ID=
txtPassword
Runat=
server
/>
<asp:Button ID=
Submit
Runat=
server
Text=
Login
PostBackUrl=
Menu
aspx
/>
要注意的是單擊按鈕可以重定向到一個叫Menuasp的目標頁這個目標頁可以使用如下的代碼獲得用戶名和密碼
<%@ PreviousPageType VirtualPath=
~/Login
aspx
%>
<script runat=
server
>
protected void Page_Load(object sender
System
EventArgs e)
{
String userName = PreviousPage
txtUserName
Text;
String password = PreviousPage
txtPassword
Text;
//其他可執行代碼
}
在上面的代碼中PreviousPageType屬性返回了一個源頁面的強類型引用這樣就消除了類型轉換
八保存視圖狀態
對於跨網頁提交來說ASPNET 內嵌了一個叫__POSTBACK的隱藏字段這個字段包含了關於源頁面的視圖信息 也就是由源頁面提供了包含了一個帶有一個非空PostBackUrl屬性值的服務端控件目標頁可以使用__POSTBACK中的信息來獲得源頁面的視圖狀態信息代碼如下
if(PreviousPage!=null && PreviousPage
IsCrossPagePostBack &&
PreviousPage
IsValid)
{
TextBox txtBox = PreviousPage
FindControl(
txtUserName
);
Response
Write(txtBox
Text);
}
在上面的代碼中核對了用於確保PreviousPage屬性不為null的檢查代碼順便提一下如果目標頁和源頁面不在同一個應用程序中這個PreviousPage屬性的值為null只有在進行跨網頁提交操作時IsCrossPagePostBack屬性才為true
這個跨網頁提交的特性是ASPNET中最強有力的特性之一這種技術將允許在一個頁面中提交到另外一個頁面並且可以在目標頁面地無縫地操作源頁面中的數據
[] [] []
From:http://tw.wingwit.com/Article/program/net/201311/15172.html