成人午夜激情影院,小视频免费在线观看,国产精品夜夜嗨,欧美日韩精品一区二区在线播放

當(dāng)前位置:首頁>>軟件教程>>新聞內(nèi)容  
在兩個ASP.NET頁面之間傳遞值
作者:kwklover(翻譯) 發(fā)布時間:2003-10-15 14:25:08 | 【字體:

引言
  ASP.NET提供了卓越的事件驅(qū)動編程模型,讓開發(fā)者簡化了應(yīng)用程序的總體設(shè)計,但是這個也造成了它固有的一些問題,例如,使用傳統(tǒng)的ASP里,我們可以通過使用POST方法很容易地實現(xiàn)頁面間傳遞值,同樣的事情,在使用事件驅(qū)動編程模型的ASP.NET就不是那么容易了,當(dāng)然了,我們?nèi)匀挥幸恍┓椒ǹ梢詫崿F(xiàn)同樣的功能。本文將試著使用不同的可能的方法來解決這個問題,但可以預(yù)見是,本文將包含使用querystring,session變量以及server.Transfer方法來實現(xiàn)頁面間的值傳遞。

使用QueryString
使用QuerySting在頁面間傳遞值已經(jīng)是一種很老的機制了,這種方法的主要優(yōu)點是實現(xiàn)起來非常簡單,然而它的缺點是傳遞的值是會顯示在瀏覽器的地址欄上的(不安全),同時又不能傳遞對象,但是在傳遞的值少而安全性要求不高的情況下,這個方法還是一個不錯的方案。使用這種方法的步驟如下:
1,使用控件創(chuàng)建web表單(form)
2,創(chuàng)建可以返回表單的按鈕和鏈接按鈕
3,在按鈕或鏈接按鈕的單擊事件里創(chuàng)建一個保存URL的字符變量
4,在保存的URL里添加QueryString參數(shù)
5,使用Response.Redirect重定向到上面保存的URL
下面的代碼片斷演示了如何實現(xiàn)這個方法:
  源頁面代碼:
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"];
}

使用Session變量
  使用Session變量是可以在頁面間傳遞值的的另一種方式,在本例中我們把控件中的值存在Session變量中,然后在另一個頁面中使用它,以不同頁面間實現(xiàn)值傳遞的目的。但是,需要注意的是在Session變量存儲過多的數(shù)據(jù)會消耗比較多的服務(wù)器資源,在使用session時應(yīng)該慎重,當(dāng)然了,我們也應(yīng)該使用一些清理動作來去除一些不需要的session來降低資源的無謂消耗。使用Session變量傳遞值的一般步驟如下:
1,在頁面里添加必要的控件
2,創(chuàng)建可以返回表單的按鈕和鏈接按鈕
3,在按鈕或鏈接按鈕的單擊事件里,把控件的值添加到session變量里
4,使用Response.Redirect方法重定向到另一個頁面
5,在另一個頁面提取session的值,在確定不需要使用該session時,要顯式清除它
下面的代碼片斷演示了如何實現(xiàn)這個方法:
   源頁面代碼:
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");
}

使用Server.Transfer
  這個方法相比上面介紹的方法稍微復(fù)雜一點,但在頁面間值傳遞中卻是特別有用的,使用該方法你可以在另一個頁面以對象屬性的方式來存取顯露的值,當(dāng)然了,使用這種方法,你需要額外寫一些代碼以創(chuàng)建一些屬性以便可以在另一個頁面訪問它,但是,這個方式帶來的好處也是顯而易見的。總體來說,使用這種方法是簡潔的同時又是面向?qū)ο蟮摹J褂眠@種方法的整個過程如下:
1,在頁面里添加必要的控件
2,創(chuàng)建返回值的Get屬性過程
3,創(chuàng)建可以返回表單的按鈕和鏈接按鈕
4,在按鈕單擊事件處理程序中調(diào)用Server.Transfer方法轉(zhuǎn)移到指定的頁面
5,在第二個頁面中,我們就可以使用Context.Handler屬性來獲得前一個頁面實例對象的引用,通過它,就可以使用存取前一個頁面的控件的值了
以下代碼綜合實現(xiàn)上述步驟過程的代碼:
  源頁面代碼:
    把以下的代碼添加到頁面中
   public string Name
{
 get
 {
 return TextBox1.Text;
 }
}

public string EMail
{
 get
 {
 return TextBox2.Text;
 }
}
  然后調(diào)用Server.Transfer方法
private void Button1_Click
(object sender, System.EventArgs e)
{
 Server.Transfer("anotherwebform.aspx");
}
   目標頁面代碼:
private void Page_Load
(object sender, System.EventArgs e)
{
 //create instance of source web form
 WebForm1 wf1;
 //get reference to current handler instance
 wf1=(WebForm1)Context.Handler;
 Label1.Text=wf1.Name;
 Label2.Text=wf1.EMail;
}

總結(jié)
  本文講述了使用不同的方法實現(xiàn)了ASP.NET頁面間值傳遞,這三種方法是:QueryString,Session和Server.Transfer,我們應(yīng)該反覆體會幾種方法的異同
  我希望本文能給你有用的助益,直到在你的代碼中運用自如!


文章來源:csdn
 放生
 愚愛
 夠愛
 觸電
 白狐
 葬愛
 光榮
 畫心
 火花
 稻香
 小酒窩
 下雨天
 右手邊
 安靜了
 魔杰座
 你不像她
 邊做邊愛
 擦肩而過
 我的答鈴
 懷念過去
 等一分鐘
 放手去愛
 冰河時代
 你的承諾
 自由飛翔
 原諒我一次
 吻的太逼真
 左眼皮跳跳
 做你的愛人
 一定要愛你
 飛向別人的床
 愛上別人的人
 感動天感動地
 心在跳情在燒
 玫瑰花的葬禮
 有沒有人告訴你
 即使知道要見面
 愛上你是一個錯
 最后一次的溫柔
 愛上你是我的錯
 怎么會狠心傷害我
 不是因為寂寞才想
 親愛的那不是愛情
 難道愛一個人有錯
 寂寞的時候說愛我
主站蜘蛛池模板: 宁安市| 措勤县| 新民市| 江孜县| 平塘县| 阜南县| 陆河县| 塘沽区| 西乌珠穆沁旗| 昌都县| 金华市| 突泉县| 冀州市| 同仁县| 郑州市| 高尔夫| 晋江市| 西藏| 息烽县| 呼玛县| 龙门县| 宕昌县| 双鸭山市| 周至县| 朔州市| 滨海县| 平南县| 兴义市| 五华县| 光泽县| 滦平县| 三台县| 昌吉市| 垫江县| 兰州市| 宿松县| 崇阳县| 虹口区| 济南市| 丰顺县| 威信县|