分為不同網站間網頁的傳值

跟同一個網站裡的網頁間的傳值

不同網站間網頁的傳值有兩種

1.Form傳值方法,用跨網頁POST或是伺服器重新導向時可用

先假設即將要傳值的網頁裡面有一個TextBox叫做TextBox1

接收值的方法是

Request.Form["TextBox1"].ToString();//這是個字串

 

2.QueryString傳值方法

當我們要連到下一個網頁時,直接將一些值打在網址上傳過去

像是http://www.Hello.com/MyHello.aspx?Name=welkingunther&Face=handsome

就可把Name和Face的值傳到MyHello.aspx網頁

然後在MyHello.aspx用以下方法接收值

Request.QueryString["Name"]//這會得到一個字串welkingunther

Request.QueryString["Face"] //這會得到一個字串handsome

 

同一個網站裡的網頁間的傳值

PreviousPage的兩種方法

這兩種是當我們用跨網頁Post或是伺服器重新導向且網頁們都在同一個網站時可用

  • 第一種

在來源網頁MySource.aspx寫上一個public的屬性

public string HiHello

{

   get

{

   return "Cool";

}

}

然後當我們用了跨網頁Post或是伺服器導向 導向至目的網頁後

就可在目的網頁讀取到這個屬性(這邊只可讀取到,不能寫回去,所以沒有set)

但還要在這個目的網頁的上方加入一行

<%@PreviousPageType VirtualPath="~/MySource.aspx"%>

如此就可接收值

用PreviousPage.HiHello//可得到字串Cool

 

  • 第二種

假設來源網頁有一個TextBox1的控制項

然後當我們用了跨網頁Post或是伺服器導向 導向至目的網頁後

可在目的網頁寫

TextBox MyText=(TextBox)PreviousPage.FindControl("TextBox1");

MyText.Text這句即可抓到來源網頁的TextBox1裡面的值

welkingunther 發表在 痞客邦 PIXNET 留言(1) 人氣()


留言列表 (1)

發表留言
  • Ea
  • 你好,我用了你的最後一個方法
    而我是用asp.net with vb
    我把程式碼改成Label1.Text = PreviousPage.FindControl("TextBox1").ToString
    其餘程式碼都沒變
    但是失敗了,他說:並未將物件參考設定為物件的執行個體
    請問為什麼會這樣阿
  • 你要先把PreviousPage.FindControl("TextBox1")這行轉型成Label後,在去取它的屬性Text後,就可以指定給你要的Label1.Text 了^^
    用VB的語法應該是這樣寫
    Label1.Text =DirectCast(PreviousPage.FindControl("TextBox1"), Label).Text

    welkingunther 於 2010/01/03 18:44 回覆