天天看點

asp.net實作傳回上一頁的6種方法

其實要實作傳回上一頁的功能,主要還是要用到JavaScript。

方法一:

在ASP.net的aspx裡面的源代碼中

<input type="button οnclick="Javascript:window.history.go(-1);"value="傳回上一頁">

淺析:這個是用了HTML控件,通過一個onclick的事件,調用了javascript中的一個方法就可以了。這個是最簡單的了,也同樣适用于靜态頁面,ASP頁面等。

方法二:

利用Reponse.write

如果你對ASP有一定的了解,那麼對Response.write這個東東就不會陌生了,方法一是直接有HTML頁面中實作,則這個則是在背景環境中實作(這個說法好像不是很規範,呵呵)

Response.write("<script language=javascript>history.go(-2);</script>)

<a href="#" target="_blank" rel="external nofollow" οnclick="javascript:history.back();">傳回前一頁</a>

這裡為會麼要采用-2的值呢,我個人認為是這樣的:因為在asp.net中的頁面,當你按下一個button後,由于頁面中會實作page.postback的緣故,實際上在這其中是重新整理了兩次頁面,我們要的是第一次的,是以就......

方法三

利用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

方法四:

這個方法估計很少人用,不過我試了一下,也還很不錯喔

在button的onClick事件中輸入

this.RegisterClientScriptBlock("e", "<script language=javascript>history.go(-2);</script>");

一樣可以 傳回到上一頁

方法五

<a href=<%=request.servervariable("http_Referre)%>

<asp:image id="imageback" visible = true" imagurl="上一頁" runat="server"/></a>

方法六

Response.Write("<script>alert('提示資訊');history.back()</script>");

Response.Write("<script>alert('提示資訊');top.location.href='" + PageURL + "'</script>")

Response.Write("<script>alert('提示資訊');window.location.href='" + PageURL + "'</script>");

Response.Write("<script>alert('提示資訊');window.location=window.location;</script>");

這裡還要啰嗦一下用Javascript來實作與用Response.redirect()來實作的一點點差別,如果你是用天表單的時候想保留你填的資料,那就要用history.go();這個東東,如果你隻是直接傳回不用做任何操作,你就可以用reponse.redirect()了.