У меня проблема с кнопкой браузера [BACK]. Позвольте мне объяснить.
Существует страница с именем ManageClient.aspx. Эта страница содержит список адресов как [дочерних] клиентских адресов (дочерний означает клиент, которого вы просматриваете), так и родительских клиентских адресов (клиенты, от которых наследуется дочерний). Когда кто-то щелкает, чтобы просмотреть клиента на странице ManageClient.aspx, строка запроса отсутствует (но я добавил переменную, чтобы исправить мою проблему здесь). Однако в некоторых JavaScript есть переменная сеанса, называемая Session («Id»), которая в конечном итоге устанавливается на странице ManageClient.aspx.
Когда пользователь нажимает на Адрес на странице ManageClient.aspx, они переносятся на страницу AddressEditor.aspx, и в строке запроса передается переменная «Id», указывающая идентификатор адреса.
Гиперссылки в редакторе адресов уже давно не работают. Это моя цель - исправить их так, чтобы AddressEditor.aspx заполнял нужного клиента. Поэтому, чтобы попытаться это исправить, я добавил строковую переменную запроса на страницу ManageClient.aspx под названием «Id». Эта переменная «Id» указывает идентификатор клиента клиента, которого вы редактируете. Кроме того, я также добавил переменную строки запроса на страницу AddressEditor.aspx под названием «ClientId». Поскольку клиент AddressEditor находится в том же рабочем процессе мастера, что и страница ManageClient.aspx, мне нужно было установить этот параметр строки запроса «ClientId», чтобы при достижении страницы AddressEditor.aspx я мог установить сеанс Session («ClientId») переменная, так что если пользователь продолжает работу в мастере для этого клиента, они находятся в правильном контексте Это прекрасно работает.
Что не работает, так это когда пользователь заходит на страницу ManageClient.aspx для [дочернего] клиента, а затем нажимает на адрес родительского клиента (отправляя их в AddressEditor.aspx в контексте родительского клиента), и затем нажимает кнопку [НАЗАД] (отправляя их обратно на страницу ManageClient.aspx). Я хочу, чтобы они вернулись к контексту дочернего клиента, а не родительского клиента. Я поставил точку останова в событии ManageClient.aspx Page_PreRender, и оно действительно вызывается. Но когда страница отображается, страница заполняется родительским клиентом, а не дочерним клиентом. Но если я выделю строку URL и нажму [ENTER], страница будет отображаться как дочерний клиент (AWESOME), поэтому она должна правильно заполнить мою переменную сеанса как дочерний клиент (но отображается неправильно), но я хочу, чтобы это было сделано когда они нажали кнопку [НАЗАД]. Как исправить страницу ManageClient.aspx для этого рабочего процесса, который я только что описал?
Вот событие Page_PreRender:
Private Sub Page_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.PreRender
Dim clientId As Integer = CType(Request.QueryString("ClientId").ToString, Integer)
If clientId > 0 Then
Session("ClientId") = clientId
Me.LIMSClientId = clientId
End If
End Sub