.Net中幾種常見的頁面跳轉傳值方法


1、ASP Server對象Execute方法

ASP Server對象的Execute方法可以在執行當前頁面的過程中將另一個頁面執行結果的內容插入到當前頁面的輸出中。Execute方法帶一個參數,是個字符串,指定要執行的ASP文件的位置。如果提供了絕對路徑,這個路徑則必須位於同一個應用程序空間中。Execute方法提供了一種服務器端包含的替代方法,並且允許使用者開發自己的可重用模塊集合,作為簡單的腳本頁。傳遞給主調ASP頁面的參數從被執行頁中可以得到。被執行頁產生的所有輸出都被添加到主調頁產生的輸出中。

提示

Server.Execute(path)適合於將一個完整的頁面調入到當前頁面,被調入的頁面本身也可以是一個完整的ASP頁面。但是,它的缺點在於:當前頁面定義的過程、函數或者變量在目標頁面中不能使用。如果要傳遞參數,可以將參數保存到Session對象中。

語法

Server.Execute(path)
示例
WebForm1.aspx:

Response.Write("Label1.Text");

 Server.Execute("WebForm2.aspx");

WebForm2.aspx:

Response.Write("Label1.Text");

2使用querystring
querystring是一種非常簡單的傳值方式,其缺點就是會把要傳送的值顯示在瀏覽器的地址欄中,並且在此方法中不能夠傳遞對象。如果你想傳遞一個安全性不是那么太重要或者是一個簡單的數值時,用此方法最好不過了。下面通過一個小例子來完成傳值工作,步驟如下:
1、創建一個web form
2、在新建的web form中放置一個button1,在放置兩個textbox1,textbox2
3、為button按鈕創建click事件
代碼如下:
private void button1_click
(object sender, system.eventargs e)
{
 string url;
 url="webform2.aspx?name=" +
  textbox1.text + "&email=" +
  textbox2.text;
 response.redirect(url);
}
4、新建一個目標頁面命名為webform2
5、在webform2中放置兩個label1,label2
在webform2的page_load中添加如下代碼:
private void page_load
(object sender, system.eventargs e)
{
 label1.text=request.querystring["name"];
 label2.text=request.querystring["email"];
}
運行,即可看到傳遞后的結果了。

3、使用session變量

使用session變量傳值是一種最常見的方式了,此中方式不僅可以把值傳遞到下一個頁面,還可以交叉傳遞到多個頁面,直至把session變量的值removed后,變量才會消失。舉個例子看看:
1、創建一個web form
2、在新建的web form中放置一個button1,在放置兩個textbox1,textbox2
3、為button按鈕創建click事件
代碼如下:
private void button1_click
(object sender, system.eventargs e)
{
        session["name"]=textbox1.text;
 session["email"]=textbox2.text;
 response.redirect("webform2.aspx");
}
4、新建一個目標頁面命名為webform2
5、在webform2中放置兩個label1,label2
在webform2的page_load中添加如下代碼:
private void page_load
(object sender, system.eventargs e)
{
 label1.text=session["name"].tostring();
 label2.text=session["email"].tostring();
 session.remove("name");
 session.remove("email");
}
運行,即可看到傳遞后的結果了。

4、使用server.transfer
雖然這種方法有點復雜,但也不失為一種在頁面傳值的方式。
舉個例子看看:
1、創建一個web form
2、在新建的web form中放置一個button1,在放置兩個textbox1,textbox2
3、為button按鈕創建click事件
代碼如下:
private void button1_click
(object sender, system.eventargs e)
{
 server.transfer("webform2.aspx");
}
4、創建過程來返回textbox1,textbox2控件的值代碼如下:
public string name
{
 get
 {
  return textbox1.text;
 }
}

public string email
{
 get
 {
  return textbox2.text;
 }
}
5、新建一個目標頁面命名為webform2
6、在webform2中放置兩個label1,label2
在webform2的page_load中添加如下代碼:
private void page_load
(object sender, system.eventargs e)
{
 //創建原始窗體的實例
 webform1 wf1;
 //獲得實例化的句柄
 wf1=(webform1)context.handler;
 label1.text=wf1.name;
 label2.text=wf1.email;

}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM