首先介紹一下幾種數據類型
在5中數據源綁定控件中提供了一下6種常用到的參數類型:
u Control:參數是網頁中的控件的屬性值。使用控件的編號、名稱來確定控件的屬性值。主要是針對控件的參數。
u Cookie:參數是HttpCookie對象的值。Cookie能爲Web應用程序保存用戶相關信息,不至於使用戶信息丟失。當用戶下次再訪問這個的站點時,應用程序就可以檢索以前保存的信息。
u Form:適用於頁面之間傳遞參數。用Form傳遞參數的好處是:參數隱含傳遞,別人無法通過查看文件屬性來看到參數的值,比較適合於在頁面之間傳遞口令等保密參數。
u Profile:適用於保存當前用戶配置文件中的屬性的值。
u QueryString:同樣適用用頁面之間傳遞參數。這種方法的主要優點是實現起來非常簡單,然而它的缺點是傳遞的值是會顯示在瀏覽器的地址欄上的,這樣做很不安全,同時又不能傳遞對象,但是在傳遞的值少而安全性要求不高的情況下,這個方法還是一個不錯的方案。
u Session:適用用頁面之間傳遞參數通過瀏覽器來。把控件中的值存在Session變量中,然後在另一個頁面中使用它,以不同頁面間實現值傳遞的目的。但是,需要注意的是在Session變量存儲過多的數據會消耗比較多的服務器資源,有時候也會造成Session值的丟失。
下面對一下QueryString參數傳遞和Session參數傳遞
A.QueryString
參數傳遞
在WEB程序開發的過程中常常使用使用QueryString參數傳遞方式。QuerySting在頁面間傳遞值是一種很老的傳參機制。
使用QueryString方法的主要優點是實現起來非常簡單;然而它的缺點是傳遞的值會顯示在瀏覽器的地址欄裏面,這樣對於安全性要求較高的程序來說是很不安全的。但是在傳遞的值少而安全性要求不高的情況下,使用這個方法還是一個不錯的。QueryString方法傳遞值很方便,但是這種方法不能傳遞對象。
4.在按鈕的單擊事件裏創建一個保存URL的字符變量。
5.在保存的URL裏添加QueryString參數。
6.使用Response.Redirect重定向到上面保存的URL到Default頁面。
protected void Button1_Click(object sender, EventArgs e)
//添加url,裏面存放兩個參數,學好和姓名,傳遞給Default頁面
url = "Default.aspx?xueh=" + TextBox1.Text + "&xingm=" + TextBox2.Text;
protected void Page_Load(object sender, EventArgs e)
//使用QueryString方法接收從上個頁面傳遞過來的參數信息,學號、姓名
Label1.Text = Label1.Text + Request.QueryString["xueh"];
Label2.Text = Label2.Text + Request.QueryString["xingm"];
運行結果
運行頁面程序,運行結果如圖11-34所示。在學號和姓名輸入欄中要傳遞的學號和姓名。
單擊“傳遞”按鈕,跳轉到下一個頁面,顯示傳遞的學號和姓名。如圖11-35所示。
在WEB程序開發的過程中另一種常用的頁面傳值方式是使用Session傳遞方式。這種方式與QueryString傳值方式不同。
通常是把前一個頁面的值保存在Session變量中,然後在另的頁面中使用這些值。但是,需要注意的是在Session變量存儲過多的數據會消耗比較多的服務器資源,所以對於不用的Session值要及時從內存中移除掉。並且長時間不用的Session值會丟失。
4.在按鈕的單擊事件裏,把控件的值添加到session變量裏。
5.使用Response.Redirect方法重定向到另一個頁面Default頁面。
6.在另一個頁面提取session的值,在確定不需要使用該session時,要顯式清除它。
protected void Button1_Click(object sender, EventArgs e)
//創建兩個Session變量傳值,學好和姓名,傳遞給Default頁面
Session["xueh"] = TextBox1.Text;
Session["xingm"] = TextBox2.Text;
Server.Transfer("Default.aspx");
protected void Page_Load(object sender, EventArgs e)
//在Default頁面接收傳遞過來的參數信息,學號、姓名
Label1.Text = Label1.Text + Session["xueh"].ToString();
Label2.Text = Label2.Text + Session["xingm"].ToString();
運行結果
運行頁面程序,運行結果如圖11-36所示。在學號和姓名輸入欄中要傳遞的學號和姓名。
單擊“傳遞”按鈕,跳轉到下一個頁面,顯示傳遞的學號和姓名。如圖11-37所示。