返回上一頁的這個東東在我們做項目的時候一般是用於填寫完表單後確認的時候有對原來輸入的數據進行修改時用的或者是因為網站為了方便浏覽者而有心添加的一個東東一般這種功能的實現在中都是用一個button的控件來實現的實現的方法有很多今天恰好在做項目時碰到要用這個東東我就把能實現 返回上一頁返回前一頁的幾種方法總結了一下供大家學習之用請多多指教)
其實要實現這個功能主要還是要用到javascript
方法一
在的aspx裡面的源代碼中
<input type=button onclick=javascript:windowhistorygo()value=返回上一頁>
淺析這個是用了HTML控件通過一個onclick的事件調用了javascript中的一個方法就可以了這個是最簡單的了也同樣適用於靜態頁面ASP頁面等
方法二
利用Reponsewrite
如果你對ASP有一定的了解那麼對Responsewrite這個東東就不會陌生了方法一是直接有HTML頁面中實現則這個則是在後台環境中實現(這個說法好像不是很規范呵呵)
Responsewrite(<script language=javascript>historygo()</script>)
<a # onclick=javascript:historyback()>返回前一頁</a>
這裡為會麼要采用的值呢我個人認為是這樣的因為在中的頁面當你按下一個button後由於頁面中會實現pagepostback的緣故實際上在這其中是刷新了兩次頁面我們要的是第一次的所以就……
方法三
利用ResponseRedirect() 或 servertransfer()
在page_load中加入
if(!IsPostBack)
ViewState[retu]=RequestUrlReferrerToString()
而在在返回按鈕事件中
ResponseRedirect(ViewState[retu]ToString())
或ServerTransfer (ViewState[retu]ToString())
淺析
RequestUrlReferrer可以獲取客戶端上次請求的url的有關信息我們在使用這個的時候最好對其進行一個判斷
if(ViewState[UrlReferrer]!=null)
ResponseRedirect(ViewState[UrlReferrer]ToString()
else
{
Responsewrite(對不起當前是最前頁碼)
這樣才好使一點點喔
}
在使用RequestUrlReferrer時還要注意
如果上一頁面使用documentlocation方法導航到當前頁面RequestUrlReferrer返回空值
如果有AB兩個頁面在浏覽器中直接請求A頁面在A頁面的中Page_Load事件中導航到B 頁面則 RequestUrlReferrer返回空因為 在Page_load事件中頁面還未初始化所以無法記錄當前頁的信息導航到b頁面也就無法獲得上一頁面的信息
點擊刷新按鈕不會改變RequestUrlReferrer
方法四
這個方法估計很少人用不過我試了一下也還很不錯喔
在button的onClick事件中輸入
thisRegisterClientScriptBlock(e <script language=javascript>historygo()</script>)
一樣可以 返回到上一頁
方法五
<a href=<%=requestservervariable(http_Referre)%>
<asp:image id=imageback visible = true imagurl=上一頁 runat=server/></a>
方法六
ResponseWrite(<s cript>alert(提示信息)historyback()</s cript>)
ResponseWrite(<s cript>alert(提示信息)toplocation + PageURL + </s cript>)
ResponseWrite(<s cript>alert(提示信息)windowlocation + PageURL + </s cript>)
ResponseWrite(<s cript>alert(提示信息)windowlocation=windowlocation;</s cript>)
方法七
[ASPNET]用Session記錄返回上一頁的頁數
// : | 閱讀數 : | 我要推薦 | Add Comment | 文章分類 : ASPNET | 訂閱
問題 : 想要在網頁上自制一個 上一頁的Button一開始是這樣使用
Protected Sub PrePage_Click(ByVal sender As Object ByVal e As SystemEventArgs) Handles PrePageClick
ResponseWrite(<script language=javascript>historygo()</script>)
End Sub
使用是因為在按下上一頁這個button時網頁已經先postback了一次
但是這樣固定的後果就是有時候已經在網頁上做了很多動作如資料的修改新增等等
按下上一頁通常沒辦法回到想到的頁面
經過搜尋將原本程式修改
Protected Sub Page_Load(ByVal sender As Object ByVal e As SystemEventArgs) Handles MeLoad
If Not IsPostBack Then
Session(getback) = 初始值
Else
Session(getback) +=
End If
End Sub
Protected Sub PrePage_Click(ByVal sender As Object ByVal e As SystemEventArgs) Handles PrePageClick
以Session(getback)來記錄應該返回之頁數
ResponseWrite(<script language=javascript>historygo( & Session(getback) & )</script>)
將值回復為初始值
Session(getback) =
End Sub
這裡還要啰嗦一下用Javascript來實現與用Responseredirect()來實現的一點點區別如果你是用天表單的時候想保留你填的數據那就要用historygo()這個東東如果你只是直接返回不用做任何操作你就可以用reponseredirect()了
From:http://tw.wingwit.com/Article/program/net/201311/12876.html