ASP.NET頁面間的傳值的幾種方法
一、使用Querystring
Querystring是一種非常簡單的傳值方式,其缺點(diǎn)就是會(huì)把要傳送的值顯示在瀏覽器的地址欄中,并且在此方法中不能夠傳遞對(duì)象。如果你想傳遞一個(gè)安全性不是那么太重要或者是一個(gè)簡單的數(shù)值時(shí),用此方法最好不過了。下面通過一個(gè)小例子來完成傳值工作,步驟如下:
1、創(chuàng)建一個(gè)web form
2、在新建的web form中放置一個(gè)button1,在放置兩個(gè)TextBox1,TextBox2
3、為button按鈕創(chuàng)建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、新建一個(gè)目標(biāo)頁面命名為webform2
5、在webform2中放置兩個(gè)Label1,Label2
在webform2的Page_Load中添加如下代碼:
private void Page_Load
(object sender, System.EventArgs e)
{
Label1.Text=Request.QueryString["name"];
Label2.Text=Request.QueryString["email"];
}
運(yùn)行,即可看到傳遞后的結(jié)果了。
二、使用Session變量
使用Session變量傳值是一種最常見的方式了,此中方式不僅可以把值傳遞到下一個(gè)頁面,還可以交叉?zhèn)鬟f到多個(gè)頁面,直至把Session變量的值removed后,變量才會(huì)消失。舉個(gè)例子看看:
1、創(chuàng)建一個(gè)web form
2、在新建的web form中放置一個(gè)button1,在放置兩個(gè)TextBox1,TextBox2
3、為button按鈕創(chuàng)建click事件
代碼如下:
private void Button1_Click
(object sender, System.EventArgs e)
{
Session["name"]=TextBox1.Text;
Session["email"]=TextBox2.Text;
Response.Redirect("webform2.aspx");
}
4、新建一個(gè)目標(biāo)頁面命名為webform2
5、在webform2中放置兩個(gè)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");
}
運(yùn)行,即可看到傳遞后的結(jié)果了。
三、使用Server.Transfer
雖然這種方法有點(diǎn)復(fù)雜,但也不失為一種在頁面?zhèn)髦档姆绞健?nbsp;
舉個(gè)例子看看:
1、創(chuàng)建一個(gè)web form
2、在新建的web form中放置一個(gè)button1,在放置兩個(gè)TextBox1,TextBox2
3、為button按鈕創(chuàng)建click事件
代碼如下:
private void Button1_Click
(object sender, System.EventArgs e)
{
Server.Transfer("webform2.aspx");
}
4、創(chuàng)建過程來返回TextBox1,TextBox2控件的值代碼如下:
public string Name
{
get
{
return TextBox1.Text;
}
}
public string EMail
{
get
{
return TextBox2.Text;
}
}
5、新建一個(gè)目標(biāo)頁面命名為webform2
6、在webform2中放置兩個(gè)Label1,Label2
在webform2的Page_Load中添加如下代碼:
private void Page_Load
(object sender, System.EventArgs e)
{
//創(chuàng)建原始窗體的實(shí)例
WebForm1 wf1;
//獲得實(shí)例化的句柄
wf1=(WebForm1)Context.Handler;
Label1.Text=wf1.Name;
Label2.Text=wf1.EMail;
}
運(yùn)行,即可看到傳遞后的結(jié)果了。
相關(guān)文章
在ASP.NET 2.0中操作數(shù)據(jù)之三十七:DataList批量更新
上篇文章我們實(shí)現(xiàn)了DataList單條記錄編輯的功能,數(shù)據(jù)量小的時(shí)候這種方法還好,如果數(shù)據(jù)量大我們更希望一次可以更新多條記錄,接下來就讓我們看看DataList如何實(shí)現(xiàn)批量更新吧。2016-05-05
在ASP.NET 2.0中操作數(shù)據(jù)之四十一:DataList和Repeater數(shù)據(jù)分頁
DataList 和Repeater 都沒有提供內(nèi)置的分頁和排序功能,本文主要介紹利用PagedDataSource實(shí)現(xiàn)DataList和Repeater數(shù)據(jù)分頁。2016-05-05
MongoDB數(shù)據(jù)庫介紹并用.NET?Core對(duì)其進(jìn)行編碼
這篇文章介紹了MongoDB數(shù)據(jù)庫并用.NET?Core對(duì)其進(jìn)行編碼,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-02-02
在ASP.NET 2.0中操作數(shù)據(jù)之四十五:DataList和Repeater里的自定義Button
本文主要介紹在DataList和Repeater添加諸如Button,LinkButton和ImageButton等控件的方法,并根據(jù)相關(guān)控件CommandName屬性觸發(fā)相應(yīng)的事件,執(zhí)行相應(yīng)的操作。2016-05-05
.NET?6線程池ThreadPool實(shí)現(xiàn)概述
本文詳細(xì)講解了.NET?6線程池ThreadPool的實(shí)現(xiàn)方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-11-11
在ASP.NET 2.0中操作數(shù)據(jù)之五十八:在程序啟動(dòng)階段緩存數(shù)據(jù)
前面我們分別介紹了在ObjectDataSource緩存數(shù)據(jù)和在分層架構(gòu)中緩存數(shù)據(jù),本文介紹ASP.NET 2.0中在程序啟動(dòng)階段在Global.asax文件中緩存數(shù)據(jù)。2016-05-05
ASP.NET 2.0中的數(shù)據(jù)操作之八:使用兩個(gè)DropDownList過濾的主/從報(bào)表
本文主要介紹在ASP.NET 2.0中如何如何將DropDownList和另一個(gè)DropDownList控件關(guān)聯(lián),選擇產(chǎn)品分類和具體的產(chǎn)品時(shí),使用DetailsView顯示產(chǎn)品的詳細(xì)信息。2016-05-05
ASP.NET MVC4入門教程(三):添加一個(gè)視圖
本文主要介紹MVC4中如何為控制器添加一個(gè)相應(yīng)的視圖,可以更加方便的自定義視圖的內(nèi)容。2016-04-04
《解剖PetShop》之四:PetShop之ASP.NET緩存
本文主要講解PetShop4.0的ASP.NET緩存,極大的提高的網(wǎng)站的性能,需要的朋友可以參考下。2016-05-05
在ASP.NET 2.0中操作數(shù)據(jù)之二十六:排序自定義分頁數(shù)據(jù)
前面教程中我們實(shí)現(xiàn)了高效的自定義分頁,但是只是一種固定排序方式。在本教程中,我們通過引入@sortExpression來擴(kuò)展存儲(chǔ)過程既實(shí)現(xiàn)自定義分頁又提供自定義排序的功能。2016-05-05

