Самый простой способ контролировать положение страницы после обратной отправки формы? - PullRequest
1 голос
/ 30 июня 2009

У меня есть форма, которая при успешной отправке создает на странице новые элементы, описывающие успешную отправку формы и предоставляющие пользователю некоторую информацию о «следующих шагах».

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

Я понимаю, что существует множество вариантов реализации, и все, о чем я могу думать, похоже на взлом. Какие-нибудь чистые и эффективные предложения? Лучшие практики?

Ответы [ 5 ]

1 голос
/ 30 июня 2009

Почему бы не использовать AJAX?

Форма не будет отправлена, пользователь не оставил свою позицию на странице, но вы можете использовать javascript для вставки сообщения пользователю в любом месте DOM.

0 голосов
/ 25 октября 2009

Вы можете использовать методы SetFocus () , чтобы установить фокус на определенный элемент управления. Однако это, вероятно, не сработает, если ваш код вызова находится на панели обновления.

0 голосов
/ 30 июня 2009

Попробуйте следующее:

if (Page.IsValid)
    Page.MaintainScrollPositionOnPostBack = false;

Я считаю, что это свойство имеет значение true по умолчанию, что заставляет страницу запоминать текущую позицию прокрутки при обратной передаче. Если вы отключите его в коде позади, постбэк должен отправить вас обратно в начало страницы.

0 голосов
/ 30 июня 2009

Используйте Javascript для добавления именованного якоря на страницу в точке, к которой вы хотите выполнить прокрутку, а затем используйте другой фрагмент JavaScript, чтобы перейти к этому якорю.

Это не красиво, но это самое простое.

0 голосов
/ 30 июня 2009

если вы делаете пост ajax, то вы можете использовать что-то вроде jQuerys scrollTo для перемещения страницы в определенную позицию.

см. Здесь для демонстрации: http://demos.flesler.com/jquery/scrollTo/

Josh

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...