分為不同網站間網頁的傳值
跟同一個網站裡的網頁間的傳值
不同網站間網頁的傳值有兩種
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裡面的值

你好,我用了你的最後一個方法 而我是用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
你好,我使用的是你最後一個方法 我用的是'asp.net c# 我的程式碼都跟你打的方式一樣 不過,我是在class中宣告元件 page_load中初始化TextBox1.Text =(TextBox) PreviousPage.FindControl("TextBox1") 在Button1_click中使用 但是失敗了,顯示錯誤:並未將物件參考設定為物件的執行個體 請問這是為什麼呢?