天天看點

跨頁投遞和Transfer的差別

 跨頁投遞和transfer的差別:

      雖然都是在頁面間傳遞資訊,但是二者也有很大的不同。下面用執行個體說明:

關鍵點:

      使用previouspage.iscrosspagepostback屬性判斷目前請求是不是跨頁投遞。

      使用previouspage.findcontrol方法可以擷取源頁面的控件。

      跨頁投遞容易和transfer混淆,可以用previouspage.iscrosspagepostback屬性判定。

1.頁面執行流程:

跨頁投遞和Transfer的差別

2.檔案結構圖:

跨頁投遞和Transfer的差別

3.跨頁投遞頁面:

跨頁投遞和Transfer的差別

注意: postbackurl="~/displaypage.aspx"用來跨頁面投遞。

4.transfer頁面:

跨頁投遞和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

    {   

            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屬性判定。

下一篇: 反射