2019/3/14 8:48:36
使用(yòng)QueryString
使用(yòng)QuerySting在頁面間傳遞值已經是一種很老的(de)機制(zhì)了,這種方法的(de)主要優點是實現起來非常簡單,然而它的(de)缺點是傳遞的(de)值是會(huì)顯示在浏覽器(qì)的(de)地(dì)址欄上(shàng)的(de)(不安全),同時又(yòu)不能(néng)傳遞對象,但(dàn)是在傳遞的(de)值少(shǎo)而安全性要求不高(gāo)的(de)情況下, 這個(gè)方法還是一個(gè)不錯的(de)方案。使用(yòng)這種方法的(de)步驟如(rú)下:
1,使用(yòng)控件(jiàn)創建web表單(form)
2,創建可(kě)以返回表單的(de)按鈕和(hé)鏈接按鈕
3,在按鈕或鏈接按鈕的(de)單擊事件(jiàn)裏創建一個(gè)保存URL的(de)字符變量
4,在保存的(de)URL裏添加QueryString參數
5,使用(yòng)Response.Redirect重定向到(dào)上(shàng)面保存的(de)URL
下面的(de)代碼片斷演示了如(rú)何實現這個(gè)方法:
源頁面代碼:
private void Button1_Click
(object sender, System.EventArgs e)
{
string url;
url="anotherwebform.aspx?name=" + TextBox1.Text + "&email=" + TextBox2.Text;
Response.Redirect(url);
}
目标頁面代碼:
private void Page_Load
(object sender, System.EventArgs e)
{
Label1.Text=Request.QueryString["name"];
Label2.Text=Request.QueryString["email"];
}
使用(yòng)Session變量
使用(yòng)Session變量是可(kě)以在頁面間傳遞值的(de)的(de)另一種方式,在本例中我們把控件(jiàn)中的(de)值存在Session變量中,然後在另一個(gè)頁面中使用(yòng)它,以不同頁面間實現值傳遞的(de)目的(de)。但(dàn)是,需要注意的(de)是在Session變量存儲過多的(de)數據會(huì)消耗比較多的(de)服務器(qì)資源,在使用(yòng)session時應該慎重,當然了,我們也(yě)應該使用(yòng)一些清理(lǐ)動作來去除一些不需要的(de)session來降低資源的(de)無謂消耗。使用(yòng)Session變量傳遞值的(de)一般步驟如(rú)下:
1,在頁面裏添加必要的(de)控件(jiàn)
2,創建可(kě)以返回表單的(de)按鈕和(hé)鏈接按鈕
3,在按鈕或鏈接按鈕的(de)單擊事件(jiàn)裏,把控件(jiàn)的(de)值添加到(dào)session變量裏
4,使用(yòng)Response.Redirect方法重定向到(dào)另一個(gè)頁面
5,在另一個(gè)頁面提取session的(de)值,在确定不需要使用(yòng)該session時,要顯式清除它
下面的(de)代碼片斷演示了如(rú)何實現這個(gè)方法:
源頁面代碼:
private void Button1_Click
(object sender, System.EventArgs e)
{
//textbox1 and textbox2 are webform
//controls
Session["name"]=TextBox1.Text;
Session["email"]=TextBox2.Text;
Server.Transfer("anotherwebform.aspx");
}
目标頁面代碼:
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");
}
使用(yòng)Server.Transfer
這個(gè)方法相(xiàng)比上(shàng)面介紹的(de)方法稍微複雜一點,但(dàn)在頁面間值傳遞中卻是特别有(yǒu)用(yòng)的(de),使用(yòng)該方法你(nǐ)可(kě)以在另一個(gè)頁面以對象屬性的(de)方式來存取顯露的(de)值,當然了,使用(yòng)這種方法,你(nǐ)需要額外寫一些代碼以創建一些屬性以便可(kě)以在另一個(gè)頁面訪問它,但(dàn)是,這個(gè)方式帶來的(de)好處也(yě)是顯而易見的(de)。總體來說,使用(yòng)這種方法是簡潔的(de)同時又(yòu)是面向對象的(de)。使用(yòng)這種方法的(de)整個(gè)過程如(rú)下:
1,在頁面裏添加必要的(de)控件(jiàn)
2,創建返回值的(de)Get屬性過程
3,創建可(kě)以返回表單的(de)按鈕和(hé)鏈接按鈕
4,在按鈕單擊事件(jiàn)處理(lǐ)程序中調用(yòng)Server.Transfer方法轉移到(dào)指定的(de)頁面
5,在第二個(gè)頁面中,我們就可(kě)以使用(yòng)Context.Handler屬性來獲得前一個(gè)頁面實例對象的(de)引用(yòng),通過它,就可(kě)以使用(yòng)存取前一個(gè)頁面的(de)控件(jiàn)的(de)值了 。
深圳市南山區南山街(jiē)道南海(hǎi)大(dà)道西(xī)桂廟路(lù)北陽光(guāng)華藝大(dà)廈1棟4F、4G-04
咨詢電話(huà):136 8237 6272
大(dà)客戶咨詢:139 0290 5075
業(yè)務QQ:195006118
技術(shù)QQ:179981967