css&javascript aspx網頁間傳值
aspx網頁間的傳值與標準html的做法有些不大一樣
我個人覺得傳統作法還比較好用一點
標準大概是這樣:
<form action="要去的地方" method=" post | get ">
如此就可以把值丟過去
而asp有3種作法
以上的意思是,在按下Click後
伺服器回應「重新轉向」
Response.Redirect("網址")
這是頗簡單的作法,不過有個小問題
這會使伺服器與使用者溝通比較多次:
以上的意思是,按下Click後
伺服器回應轉換
Server.Transfer("網址");
伺服器接到資料,直接回應轉換後的網頁
只會有一次溝通,不過這樣網址列不會有任何變化
輸入資料的叫「AA」網頁
按下後其實已經轉到「BB」網頁
不過網址列仍然只會顯示是:「AA」
而第一個方法就會有BB網頁的紀錄
以上是用程式碼實現轉換,其實還有更簡單的作法
在資料輸入頁→ button按鈕 →屬性 → PostBackUrl → 輸入要去的網頁
這樣就好,這樣按下就會轉去網頁
而在取得資料網頁上撰寫對應的就好,如下:
我個人覺得傳統作法還比較好用一點
標準大概是這樣:
<form action="要去的地方" method=" post | get ">
如此就可以把值丟過去
而asp有3種作法
一、程式碼:
protected void Button1_Click(object sender, EventArgs e) { Response.Redirect(String.Format("result.aspx?username={0}&password={1}",TextBox1.Text,TextBox2.Text)); }
以上的意思是,在按下Click後
伺服器回應「重新轉向」
Response.Redirect("網址")
這是頗簡單的作法,不過有個小問題
這會使伺服器與使用者溝通比較多次:
- Client端按下:送出資料到Server
- Server回應:請轉到這個網址
- Client端發出需求:到指定的網址
- Server回應:依Client端到指定的網址
這「按一下」的背後動作,其實Client與Server溝通了2次
難道不能按一下就送出嗎?
當然有啊!
二、程式碼:
protected void Button1_Click(object sender, EventArgs e) { Server.Transfer(String.Format("result.aspx?username={0}&password={1}", TextBox1.Text, TextBox2.Text)); }
伺服器回應轉換
Server.Transfer("網址");
伺服器接到資料,直接回應轉換後的網頁
只會有一次溝通,不過這樣網址列不會有任何變化
輸入資料的叫「AA」網頁
按下後其實已經轉到「BB」網頁
不過網址列仍然只會顯示是:「AA」
而第一個方法就會有BB網頁的紀錄
以上是用程式碼實現轉換,其實還有更簡單的作法
在資料輸入頁→ button按鈕 →屬性 → PostBackUrl → 輸入要去的網頁
這樣就好,這樣按下就會轉去網頁
而在取得資料網頁上撰寫對應的就好,如下:
三、程式碼
protected void Page_Load(object sender, EventArgs e) { // 第1及第2個方法取得傳來的值 // Label1.Text = Request.QueryString["username"]; // Label2.Text = Request.QueryString["password"]; // 第3個方法取值 TextBox tb; // PreviousPage.FindControl,前個網頁中的控制項 tb = PreviousPage.FindControl("TextBox1") as TextBox; Label1.Text = tb.Text; tb = PreviousPage.FindControl("TextBox2") as TextBox; Label2.Text = tb.Text; }
留言
張貼留言