雜談Server.Transfer()傳值

     話說各位進行頁面之間相互傳值,基本上都是使用的是session,application,cookie,QueryString,很少有人使用Server.Transfer()進行傳值,今天下午特意研究和學習了下頁面傳值的的幾種方法,在coding中學會了很多意識和思想,感覺蠻受用的,特別對server.Transfer()進行的學習和理解,以及體會和感悟,自己隨即記錄和保存下來,希望以後翻開自己的博客瀏覽的時候,還記得當初學習的感覺和時光。用於記錄自己的學習成長曆程吧,權當用於承載自己轉行後的記錄點滴...  

  首先新建一個項目,用於WEB應用程式,具體頁面控件有些什麼,請見圖1

圖1:

文本框,用於輸入你自己要傳給其他頁面的值,不過通常別人在這裏是指的是用戶名,以及企業應用系統中的參數等。

 

  然後,再添加第2頁面,用於第一頁面進行傳值的目標頁面,見下圖2

圖2:

 

  第三,我們開始進行頁面傳值,這裏主要是講Server.Transfer()進行傳值,因爲這個方法是基於面向對象的,大家都覺得OO思想是比較時髦的,至少現在是這樣。所以我也modern一回,^_^。使用此方法進行傳值,必須要在第一web,進行的值進行保存,其實在這裏主要是使用了一個屬性進行值保存,如果別的頁面要進行訪問,那這裏就必須把屬性進行共享,設置爲public,否則無法訪問會提示報錯,而且設置字段進行訪問也可以,但是傳值不了,具體原因我也不知道,這希望各位說說,解惑一下,多謝!請看註釋部分

01 public partial class firstset : System.Web.UI.Page
02    {
03        protected void Page_Load(object sender, EventArgs e)
04        {
05        }
06        public string Name
07        {
08            get { return this.txtvalue.Text.Trim().ToString(); }
09        }
10       // public  string paravalue;
11       
12        protected void btnTransfer_Click(object sender, EventArgs e)
13        {
14            this.Server.Transfer("second.aspx");//注意:使用此方法 ,IE地址欄位地址不會變.
15            //paravalue = this.txtvalue.Text;
16        }
17    }

上面代碼用於進行設置值在傳遞前的工作

第四,因爲第三進行了頁面傳值,那麼就在你點擊按鈕【傳值】後進行頁面轉向,隨即第2頁面獲取並顯示值

代碼如下:

 

1 public partial class second : System.Web.UI.Page
2 {
3 protected void Page_Load(object sender, EventArgs e)
4 {
5 firstset a;
6 a = (firstset)Context.Handler;
7 string getvalue;
8 getvalue =a.Name;
9 Response.Write(getvalue);
10
11 }
12 }
13  

代碼分析:

首先對第一頁面的對象進行一個實例化,firstset a; firstset是第一頁面的頁面後臺代碼類,如果不是和頁面名稱相同,那你在HTML視圖中的頂端將 Inherits="firstset",引號裏面設置你的後臺代碼的類名就OK了,這裏就是一個OO思想的使用,對象實例話,呵呵,自己認爲的,不過的確是如此,然後如果要使用server.Transfer()傳值就必須使用Context.Handler,此功能是.NET提供的,值得研究和學習,不過這只是一個傳遞過來的HTTP流對象,你必須強制轉化成第一頁面的類型,

然後獲取第一頁面的屬性值.

這只是我個人的理解,便於自己記錄和學習,希望大家討論....

發佈了78 篇原創文章 · 獲贊 4 · 訪問量 18萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章