asp編程經驗談:Web程序中頁面間數據傳遞方法小結
發表時間:2024-05-31 來源:明輝站整理相關軟件相關文章人氣:
[摘要]介紹 我們總是會遇到這樣的情況,需要將數值從一個網頁傳遞到另一個網頁。在這篇文章中,向你展示了幾種從一個網頁向另一個網頁傳遞數值的幾種方法。在此例子中,創建的網頁由一個文本控件和幾個按鈕控件組成。在文本框中輸入的數據通過被標識在按鈕控件中的不同方法從一個網頁傳遞到另一個網頁。 Respon...
介紹
我們總是會遇到這樣的情況,需要將數值從一個網頁傳遞到另一個網頁。在這篇文章中,向你展示了幾種從一個網頁向另一個網頁傳遞數值的幾種方法。在此例子中,創建的網頁由一個文本控件和幾個按鈕控件組成。在文本框中輸入的數據通過被標識在按鈕控件中的不同方法從一個網頁傳遞到另一個網頁。
Response.Redirect
讓我們首先看一看如何使用Response.Redirect方法傳遞數據。這是它們之中最簡單的方法。在文本框中輸入一些數據,并且當你輸入完成數據后,按下“Respose.Redirect”按鈕。我們會得到一個提示,有時我們想在catch程序中傳遞另一個網頁,意味著捕捉到例外程序并且向另一個網頁傳遞。如果你試圖這樣做,它會給你一個System.Threading例外程序。因為你想遺留下一個線程向另一個網頁傳遞數據,所以這個例外程序就會被拋出。
Response.Redirect("WebForm5.aspx",false);
這個語句告訴編譯器定位到“WebForm5.aspx”,這里的“false”意味著在當前網頁不能結束你正在做的事情。應該看一看線程發布命令的System.Threading類。在下面,看一看按鈕事件的C#代碼�!皌xtName”文本控件的名字,文本框的內的值傳遞到一個叫做“WebForm5.aspx”的網頁。在“?”之后的“Name”符號只是一個臨時的響應變量,這個變量保持著文本的數值。
private void Button1_Click(object sender, System.EventArgs e)
{
// Value sent using HttpResponse
Response.Redirect("WebForm5.aspx?Name="+txtName.Text);
}
好的,到這種觀點為止,你使用Response發送了數值。剛剛,在此我收集到了這些數值,所以在“WebForm5.aspx”page_Load事件中,寫入這些代碼。首先,我們檢查到輸入的值不為null。如果不是這樣,我們只是簡單地在網頁上使用Label控件顯示數值。注意:如果你使用Response.Redirect方法來傳遞這些數值,所有這些數值在瀏覽器的URL中都是不可見的。你絕不能使用Response.Redirect來傳遞信用證號碼和機密信息。
if (Request.QueryString["Name"]!= null)
Label3.Text = Request.QueryString["Name"];
Cookies
接下來使用Cookies。Cookies在服務器端創建,但是客戶端省略。在此 “Cookies” 按鈕的click事件中,寫入以下代碼:
HttpCookie cName = new HttpCookie("Name");
cName.Value = txtName.Text;
Response.Cookies.Add(cName);
Response.Redirect("WebForm5.aspx");
首先,創建一個cookie命名為“cName”。既然一個cookie實例可以擁有許多數值,告訴編譯器這個cookie持有“Name”數值。我們將它賦值給TextBox并且最結后將它加入Response流,再使用Response.Redirect方法傳遞給其它網頁。
讓我們看一看如何得到被另一個網頁傳遞的cookie數值。
if (Request.Cookies["Name"] != null )
Label3.Text = Request.Cookies["Name"].Value;
如你所看到的,象我們以前做一的一樣正是使用同一種方法,剛剛我們在Request.QueryString之內,使用了Request.Cookies。記注一些瀏覽器不接收cookies。
[1] [2] 下一頁