程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> 關於C# >> ASP.NET中頁面傳值技巧

ASP.NET中頁面傳值技巧

編輯:關於C#
 

在ASP.NET中有幾種基於頁面間的傳值方法:常見的有QueryString.這種方法最簡單不過了,但缺點就是它把要傳送的值顯示在地址欄中,如果對於在安全性的信息來說這並不是一種好的解決方案。還有一個缺點就是它不能傳對象。這種方法適合於傳送一個簡單的值及安全性不大重要的信息。例:
  有兩個頁面:WebForm1.aspx,WebForm2.aspx。
在WebForm1.aspx.cs的某些事件中放置如下代碼:
string url="WebForm2.aspx?name="+this.txtname.Text;
Response.Redirect(url);            
接著關鍵時刻出現了:在WebForm2.aspx.cs中某些事件中放置如下代碼:
lblname.Text=Request.QueryString["name"];
OK! 整個傳值過程完成!
還有一種是利用Session變量來傳值,這種也比較常用。利用Session比較靈活,可以
在多個頁面間進行傳值。當調用其remove後,Session即失效。同樣用兩張頁面舉個例:
WebForm1.aspx.cs中寫入如下代碼:
Session["name"]=txtname.Text;   
Response.Redirect("WebForm2.aspx");
下面在WebForm1.aspx.cs中取出Session的值:
lblname.Text=Session["name"].ToString(); //因為取出來的是一個對象,所以必須轉換類型
Session.Remove("name");? //使Session失效。                    

  第三種方式是利用Request對象來取值,(注:這裡使用的是html控件)這種比較簡潔。實現如下:

在WebForm1.aspx中:

Name:

?

在WebForm2.aspx.cs中某個事件寫入:Response.Write(Request.Form["txtname"]);

當點擊submit按鈕後,即通過Request.Form[”txtname”]取出了值,


 

第四種方法是利用Server對象的Transfer()方法來傳值,它接收一個頁面對象。

下面用代碼來講解一下這種實現方式:

在WebForm1.aspx 的某個事件中寫入如下代碼:Server.Transfer("WebForm2.aspx"); //傳遞頁面對象
接著就可以在WebForm2.aspx.cs中獲取WebForm1的頁面對象。
if(Context.Handler is WebForm1) //判斷傳遞過來的是否WebForm1,因為可能會有多個傳遞對象。    
{                                             
WebForm1 f1=(WebForm1)Context.Handler; //通過Context.Handler來創建一個WebForm1的頁面對象,返 回一個object                                           
Response.Write("Hey,I get it with Context Handler "+((TextBox)f1.FindControl("TextBox1")).Text+"

");??      
}                                              
//最後通過調用WebForm1對象的FinControl()方法來查找WebForm1中名為"TextBox1"的一個文本控件,在此也可以換成其它的控件,不管查找的是哪一種控件,都必須將其強制轉換為其類型,本示例中為TextBox,最後調用其屬性Text,獲取在TextBox1中的值,達到傳值的效果。
  這種方法同樣很靈活,可以傳遞多個頁面對象,而不是傳遞值,因此當獲取到頁面對象的時候就可以獲取此頁面對象中的某些控件的值或其它的數據。


(注:以上幾種方法,除了Request.Form()這種傳值方法使用的是HTML控件外,其它幾種都是使用WEB控件)
 

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved