跨頁投遞和Transfer的區別
跨頁投遞和Transfer的區別:
雖然都是在頁麵間傳遞信息,但是二者也有很大的不同。下麵用實例說明:
關鍵點:
使用PreviousPage.IsCrossPagePostBack屬性判斷當前請求是不是跨頁投遞。
使用PreviousPage.FindControl方法可以獲取源頁麵的控件。
跨頁投遞容易和Transfer混淆,可以用PreviousPage.IsCrossPagePostBack屬性判定。
1.頁麵執行流程:
2.文件結構圖:
3.跨頁投遞頁麵:
注意: PostBackUrl="~/DisplayPage.aspx"用來跨頁麵投遞。
4.Transfer頁麵:
後台代碼:
//TransferTest頁麵;
public partial class TransferTest : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
Server.Transfer("DisplayPage.aspx");
}
}
5.顯示頁麵的後台代碼:
//Default.aspx顯示頁麵;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (PreviousPage != null) //是否有投遞頁麵。
{
if (PreviousPage.IsCrossPagePostBack)
{
Response.Write(((TextBox)PreviousPage.FindControl("TextBox1")).Text + "</br><h3>這是跨頁投遞方法發送的結果</h3>");
}
if (!PreviousPage.IsCrossPagePostBack)
{
Response.Write(Request.Params["TextBox1"] + "</br><h3>這是Transfer方法發送的結果</h3>");
//注意:Request.Params["TextBox1"]用來獲取轉向頁麵控件(這裏是TextBox1)的值;
}
}
//使用PreviousPage.IsCrossPagePostBack屬性判斷當前請求是不是跨頁投遞。
//使用PreviousPage.FindControl方法可以獲取源頁麵的控件。
//跨頁投遞容易和Transfer混淆,可以用PreviousPage.IsCrossPagePostBack屬性判定。
}
}
最後更新:2017-04-02 04:00:25