Как заставить Asp.Net перенаправить пользователя обратно в исходную точку

StackOverflow https://stackoverflow.com/questions/225149

  •  03-07-2019
  •  | 
  •  

Вопрос

Ребята, я пишу код более 15 лет, но еще 3 месяца назад мне удавалось избегать “веб-разработки”.

Я унаследовал устаревшее Asp.net приложение (запущенное в .net 1.1, сейчас мы на .Net 2.0), это инструмент администрирования нашего продукта.

В нескольких местах инструмент администрирования просто поддерживает длинные списки значений.

Список (может содержать более 200 элементов) отображается в GridView (страница A), пользователь нажимает кнопку редактирования для элемента, это приводит их на страницу редактирования элемента (страница B), где они могут изменить значение (или значения, элемент в списке может быть связан с несколькими значениями, напримеримя, адрес и предпочитаемый окрас, порода кошки ...)

В настоящее время, когда пользователь нажимает “Сохранить” на странице B, мы перенаправляем обратно на Страницу A.Страница открывается вверху списка, это раздражает пользователя, так как часто несколько последовательных элементов необходимо настраивать вместе, а пользователю требуется 1.Вспомните, какой элемент они только что отредактировали, 2.прокрутите вниз до этого элемента

Что я хочу сделать, так это чтобы список возвращал пользователя к элементу, который он только что отредактировал, так как часто несколько элементов в последовательности необходимо настраивать вместе.

Самая Быстрая Остановка Пистолета ...и продолжайте читать

  1. Предложения в строках “перегруппируйте элементы, чтобы их было меньше в списке” будут считаться бесполезными
  2. Допустимые замечания о том, что .Net 3.5 делает это автоматически, будут сочтены мной бесполезными (но опубликуйте их в любом случае, это может помочь какому-нибудь другому бедолаге)
  3. Я думаю, что я мог бы сделать это, разместив идентификатор отредактированного элемента при повторной загрузке страницы 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.Тебе бы это понравилось.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top