asp.net下利用js實現返回上一頁的實現方法小集

來源:互聯網
上載者:User

方法一:
在asp.net的aspx裡面的原始碼中
<input type="button onclick="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="#" onclick="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("對不起,當前是最前頁碼“);

這樣才好使一點點喔
}
在使用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()了.

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.