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

頁面間傳值的幾種方法

編輯:.NET實例教程

我們來學習如何在頁面間傳遞信息,首先我們來看第一種方法,這種方法很常用,

--------------------------------------------------------------------------------

1.QueryString
使用這種分方法有幾點需要注意:
參數限制於簡單的字符串.
參數是明文傳輸且對於用戶是開放的,安全性不高.
參數的長度限制於1-2kb.
.Net 2.0不支持,需要你手工的傳遞,方法是Response.Redirect("newPage.ASPx?num ="+num.tostring());如果要傳輸多個參數在參數之間加上"&"還有一個如果的string中含有不合法的字符但是你還是需要傳輸,那麼就要使用Server.URLEncode(stringname);
讀取參數是更據參數的名稱:Request.QueryString["num"];

--------------------------------------------------------------------------------
第二中使用方法為Cross-Page posting
頁面之間,ASP.Net使用了一種"PostBackURL"技術,不過只限制於在Button control中使用(LinkButton,ImageButton).
<ASP:Button ID="Btn_CrossPage" Runat = "Server" PostBackUrl = "Crosspage.ASPx">
的二張頁面中的所有函數Page_load事件都會被強制的載入。
Protected  void Page_load(Object sender,EventArgs e)
{
   if(PreviousPage != null)
      {
          lblinfo.Text = "You came a page from "+PreviousPage.Header.Title;
       }
}

--------------------------------------------------------------------------------
如果你想訪問頁面的controls,你需要將類型顯示的申明為頁面名稱
Protected void Page_load(Object sender,EventArgs e)
{
    if(PreviousPage != null)
       {
          Crosspage1 prevpage = PreviousPage as Crosspage1;
            if(prevpage != null)
                {//Any code}
        }
}
經過以上這步後你還是不可以完全的訪問,因為變量是保護類型的,所以你必須在申明一個共有的成員函數.
Public String GetName()
{
    get{return txt1.Text+txt2.Text};
}
如果你想在任何controls中使用Cross-posting,那麼你可以使用Server.Tranfer(),它會將頁面的VIEwstate全部的放過去,我們如何鑒別是那種方式?if(PreviousPage.IsCrossPageBack)就可以解決.

--------------------------------------------------------------------------------

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