Как заставить Asp.Net перенаправить пользователя обратно в исходную точку
-
03-07-2019 - |
Вопрос
Ребята, я пишу код более 15 лет, но еще 3 месяца назад мне удавалось избегать “веб-разработки”.
Я унаследовал устаревшее Asp.net приложение (запущенное в .net 1.1, сейчас мы на .Net 2.0), это инструмент администрирования нашего продукта.
В нескольких местах инструмент администрирования просто поддерживает длинные списки значений.
Список (может содержать более 200 элементов) отображается в GridView (страница A), пользователь нажимает кнопку редактирования для элемента, это приводит их на страницу редактирования элемента (страница B), где они могут изменить значение (или значения, элемент в списке может быть связан с несколькими значениями, напримеримя, адрес и предпочитаемый окрас, порода кошки ...)
В настоящее время, когда пользователь нажимает “Сохранить” на странице B, мы перенаправляем обратно на Страницу A.Страница открывается вверху списка, это раздражает пользователя, так как часто несколько последовательных элементов необходимо настраивать вместе, а пользователю требуется 1.Вспомните, какой элемент они только что отредактировали, 2.прокрутите вниз до этого элемента
Что я хочу сделать, так это чтобы список возвращал пользователя к элементу, который он только что отредактировал, так как часто несколько элементов в последовательности необходимо настраивать вместе.
Самая Быстрая Остановка Пистолета ...и продолжайте читать
- Предложения в строках “перегруппируйте элементы, чтобы их было меньше в списке” будут считаться бесполезными
- Допустимые замечания о том, что .Net 3.5 делает это автоматически, будут сочтены мной бесполезными (но опубликуйте их в любом случае, это может помочь какому-нибудь другому бедолаге)
- Я думаю, что я мог бы сделать это, разместив идентификатор отредактированного элемента при повторной загрузке страницы A и прокрутив сетку до этой точки, однако Мой вопрос заключается в следующем . . .
Есть ли функция для этого, о которой я не знаю (и что это такое)
и / или
Каков общепринятый способ сделать это?
Заранее спасибо B.Более беспокойный
Решение
Этого можно достичь с помощью тегов привязки. Когда вы выводите свои элементы на странице A, установите тег привязки рядом с каждым элементом следующим образом:
<a name="#175"></a>
Где этот элемент будет с идентификатором 175. Затем, когда вы перенаправите обратно на страницу PageA, добавьте " # 175 " на конец URL
Response.Redirect("PageA.aspx#175");
Другие советы
Самый простой способ, который вы можете сделать, это передать обратно идентификатор из PageB в строке запроса в URL-адресе при перенаправлении обратно на PageA после сохранения в PageB.
например ,www.example.com/PageA.aspx?editedId=89
и в PageLoad of PageA вы можете проверить, взято ли это со страницы сведений о редактировании, проверив, есть ли допустимое значение в HttpContext.Current.QueryStrubg["editedId"], если там было, это означает, что оно с PageB.Вы можете использовать это значение, чтобы легко выделить или выделить строку в datagrid
Самая быстрая остановка оружия ... и продолжайте читать...
Хороший элемент управления позволяет вам редактировать несколько строк одновременно на одной странице, например, на странице PageA, и сохранять их вместе.Проверьте свой Telerik control на наличие datagrid.Тебе бы это понравилось.