asp.net實現返回上一頁的幾種方法(轉)

其實要實現這個功能主要還是要用到javascript
1. 方法一:
在asp.net的aspx裏面的源代碼中

淺析:這個是用了HTML控件,通過一個onclick的事件,調用了javascript中的一個方法就可以了。這個是最簡單的了,也同樣適用於靜態頁面,ASP頁面等。
2. 方法二:
利用Reponse.write
如果你對ASP有一定的瞭解,那麼對Response.write這個東東就不會陌生了,方法一是直接有HTML頁面中實現,則這個則是在後臺環境中實現(這個說法好像不是很規範,呵呵)
Response.write("<script language=javascript>history.go(-2);</script>)
返回前一頁
這裏爲會麼要採用-2的值呢,我個人認爲是這樣的:因爲在asp.net中的頁面,當你按下一個button後,由於頁面中會實現page.postback的緣故,實際上在這其中是刷新了兩次頁面,我們要的是第一次的,所以就......
3. 方法三
利用Response.Redirect() 或 server.transfer()
在page_load中加入
if(!IsPostBack)   
         ViewState["retu"]=Request.UrlReferrer.ToString();   
而在在返回按鈕事件中
   Response.Redirect(ViewState["retu"].ToString());   
或Server.Transfer    (ViewState["retu"].ToString());   
淺析:
Request.UrlReferrer可以獲取客戶端上次請求的url的有關信息,我們在使用這個的時候最好對其進行一個判斷
if(ViewState["UrlReferrer"]!=null)
         Response.Redirect(ViewState["UrlReferrer"].ToString();
else
{
Response.write("對不起,當前是最前頁碼“);
這樣纔好使一點點喔
}
以下這段來自:http://stswordman.cnblogs.com/archive/2006/06/12/423910.html
在使用Request.UrlReferrer時還要注意:
1.   如果上一頁面使用document.location方法導航到當前頁面,Request.UrlReferrer返回空值
2.   如果有A,B兩個頁面,在瀏覽器中直接請求A頁面,在A頁面的中Page_Load事件中導航到B 頁面,則     Request.UrlReferrer返回空。因爲 在Page_load事件中頁面還未初始化,所以無法記錄當前頁的信息,導航到b頁面也就無法獲得上一頁面的信息
3.   點擊刷新按鈕不會改變Request.UrlReferrer
4. 方法四:
這個方法估計很少人用,不過我試了一下,也還很不錯喔
在button的onClick事件中輸入
this.RegisterClientScriptBlock("e", "<script language=javascript>history.go(-2);</script>");
一樣可以 返回到上一頁
5. 方法五


這裏還要囉嗦一下用Javascript來實現與用Response.redirect()來實現的一點點區別,如果你是用天表單的時候想保留你填的數據,那就要用history.go();這個東東,如果你只是直接返回不用做任何操作,你就可以用reponse.redirect()了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章