一、目前在asp.net中頁面傳值共有這么幾種方式:
1、表單提交
<form action= "target.aspx" method = "post" name = "form1">
<input name = "param1" value = "1111"/>
<input name = "param2" value = "2222"/>
</form>
....
form1.submit();
....
此種方在asp。net中無效,因為asp。net的表單總是提交到自身頁面,如果要提交到別一頁面,需要特殊處理。
2、鏈接地址傳送
接收頁面: string str = request["param1"]
3、session共享
發送頁面:session("param1") = "1111";
按收頁面 string str = session("param1").tostring();
4、application共享
發送頁面: application("param1") = "1111";
按收頁面: string str = application("param1").tostring();
此種方法不常使用,因為application在一個應用程序域范圍共享,所有用戶可以改變及設置其值,故只應用計數器等需要全局變量的地方。
5、cookie
6、response.redirect()方式
response.redirect("target.aspx?param1=1111¶m2=2222")
接收頁面: string str = request["param1"]
7、server.transfer()方式。
server.transfer("target.aspx?param1=1111¶m2=2222")
接收頁面: string str = request["param1"]
二、如果在兩個頁面間需要大量的參數要傳傳遞,如數據查詢等頁面時,用1 - 6的方法傳值及其不便,而第 7 種方法確有一獨特的優勢!但使用該方法時需要一定的設置,現簡單介紹一下該方法的使用方式:
以查詢數據頁面為例:
在查詢頁面中設置如下公有屬性(querypage.aspx):
| 以下為引用的內容: public class querypage : system.web.ui.page { protected system.web.ui.webcontrols.textbox txtstadate; protected system.web.ui.webcontrols.textbox txtenddate; ... /// <summary> /// 開始時間 /// </summary> public string stadate { get{ return this.txtstadate.text;} set{this.txtstadate.text = value;} } /// <summary> /// 結束時間 /// </summary> public string enddate { get{ return this.txtenddate.text;} set{this.txtenddate.text = value;} } .... private void btnenter_click(object sender, system.eventargs e) { server.transfer("resultpage.aspx"); } } |
在顯示查詢結果頁面(resultpage.aspx):
| 以下為引用的內容: public class resultpage : system.web.ui.page { private void page_load(object sender, system.eventargs e) { //轉換一下即可獲得前一頁面中輸入的數據 response.write( "stadate:" ); |
共3頁: 上一頁 1 [2] [3] 下一頁
新聞熱點
疑難解答
圖片精選