在上一篇文章當中,介紹了使用帶參數的URL實現頁面間傳值的方式,但使用URL進行頁面間傳值,所傳值的頁面數量受限,一般情況只能實現兩個頁面間傳值,如果想在多個頁面間傳值的話,帶參數的URL有些力不從心了,而Session變量可以實現多個頁面間傳值,為我們提供了很多方面,下面將進行詳細的介紹。
ASP.NET中使用Session變量在多個頁面間傳值的步驟:
(1)在源頁面中定義Session變量,將需要傳遞的值放入Session變量中,定義Session變量很簡單,語法格式如下:
Session["變量名稱"] = 要傳遞的值;
(2)在目標網頁中獲取所傳遞的值,語法格式如下:
要接收值的變量或控件 = Session["變量名稱"];
下面使用一個例子來說明具體使用方法:
在源頁面中定義Session變量,可以在相應的事件處理程序中,或在信息處理完后,需要在多個頁面共享信息的頁面中保存值時,都可以使用Session變量,這里假設將TextBox中的值傳遞到其它頁面中:
源頁面代碼(這里假定為按鈕的Click事件,SecondPage.aspx為目標網頁):
private void Button1_Click (object sender, System.EventArgs e)
{
Session["userName"] = TextBox1.Text.Trim( ) ; //獲取用戶名
Session["userAge"] = TextBox2.Text.Trim( ); //獲取用戶年齡
Server.Transfer("SecondPage.aspx"); //使用Server.Transfer方法跳轉到目標頁
}
在目標頁面中可以獲取Session變量中保存的值:
private void Page_Load(object sender, System.EventArgs e)
{
Label1.Text=Session["name"].ToString();
Label2.Text=Session["email"].ToString();
}
上面的例子使用Server.Transfer跳轉到目標頁,并在目標頁中獲取值,實際上只要保存到了Session中,可以在多個頁面中讀取Session中的值,如在登錄處理程序中,當用戶登錄成功后,可以使用Session變量保存用戶登錄的用戶名和其它相關信息,而在其它需要登錄后才能操作的頁面中可以先判斷一下Session變量對應的值是否為null,如果為null則用戶未登錄,就可以將頁面跳轉到登錄頁面,否則,可以認為用戶已經登錄并保存了Session,用戶就可以進行該頁面中的其它操作。
濫用Session變量,會消耗較多的服務器資源,因此如果不是在多個頁面中共享值的話,最好不使用Session變量。同時,Session變量有自己的生存期,如果用戶未進行任何操作的話,網頁保存的Session變量在生存期結束時,將自動失效。
新聞熱點
疑難解答
圖片精選