一、目前在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) { //轉換一下即可獲得前一頁面中輸入的資料 QueryPage queryPage = ( QueryPage )Context.Handler; Response.Write( "StaDate:" ); Response.Write( queryPage.StaDate ); Response.Write( "<br/>EndDate:" ); Response.Write( queryPage.EndDate ); } } |
共3頁: 上一頁 1 [2] [3] 下一頁