2012-02-09 6 views
0

Я пытаюсь добавить кнопку «Назад» во всплывающем окне. Но у меня проблемы, потому что я получаю ошибку 403. Я также попробовал Request.UrlReferrer.ToString(). Просто щелчок правой кнопкой мыши и выбранная обратная обработка работает, и клиент не хочет, чтобы панель инструментов со строкой IE назад на всплывающем экране. Какие-либо предложения?Пользовательская кнопка

Protected prevPage As String = String.Empty 
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
    If Not IsPostBack Then 
     prevPage = Request.ServerVariables("HTTP_Referer") 
    End If 
End Sub 

Protected Sub Back_Click(ByVal sender As Object, ByVal e As EventArgs) 
    Response.Redirect(prevPage) 
End Sub 

ответ

1

Используйте javascript вместо обратной передачи.

<asp:HyperLink ID="lnk" runat="server" NavigateUrl="#" onClientClick="history.go(-1);" Text="Go Back" /> 

Это будет элемент управления asp.net, который может быть изменен в коде позади, но это может так же легко быть стандартным <a> элементом.

Edit:
Если у вас есть несколько постбэк случающихся на странице, история может не работать на них должным образом. Возможно, вам придется добавить трекер и изменить целое число в зависимости от того, сколько прошлое обращений. Кроме того, если у вас есть несколько обратных ссылок на одну страницу, а затем перейдите от этой страницы, переход «назад» может привести к неправильной записи на возвращенную страницу.

+0

Да, я только что нашел, что я сделал onclientclick = "javascript: history.back(); return false;" и все работает – cjohnson2136

+0

@ cjohnson2136: Не уверен, что вы видели мое редактирование, но помните о ловушках и ловушках этого метода. –

+0

ну страница, из которой она исходит, имеет только один вариант. Вы можете получить доступ к этой странице только с той, которую я отправил обратно – cjohnson2136

Смежные вопросы