Сохранение положения прокрутки и выбранного элемента управления при обратной передаче

Вернемся к другой проблеме в Интернете.

Когда элемент управления отправляет сообщение на сервер, страница обновляется (Fine). Страница также прокручивается вверх и теряет выбранный элемент управления. Если это происходит после обратной передачи, в зависимости от того, какие изменения произошли, элементы управления становятся видимыми или скрытыми. Фокус теряется, и текущая прокрутка сбрасывается, даже если ничего не изменилось с точки зрения видимости страницы. Данные, введенные в текстовые поля, сохраняются, как и любые выбранные радиокнопки / флажки. Проблема заключается в том, что табуляция сбрасывается до индекса 0, а прокрутка страниц отправляется обратно в верхнюю часть страницы.

Я использую.Net 4.0

Я попытался добавить MaintainScrollPositionOnPostback="true" как на самой странице asp, так и в файле web.config, но безрезультатно. Я попытался с панелью обновления Ajax и без нее, используя условное обновление, запускаемое при изменении текста текстовых полей или радиокнопок, и обратная передача по-прежнему вызывает прокрутку и потерю индекса.

Любые иды были бы фантастическими. Та!

1 ответ

Решение

Прежде всего, MaintainScrollPositionOnPostback="true" имеет известную ошибку в asp.net 2.0, смотрите здесь.

Кроме того, правильный синтаксис maintainScrollPositionOnPostback, (строчные м)

Я использовал maintainScrollPositionOnPostback но у меня много проблем в IE, тогда я использую asp.net AJAX Control Toolkit UpdatePanel, он решает проблему (страница не прокручивается вверх) и экономит некоторую пропускную способность.

РЕДАКТИРОВАТЬ:

Я думаю, я понимаю вашу проблему, это сфокусировано на элементе, это можно сделать, используя некоторые обходные пути javascripts, см. Здесь.

Надеюсь, это поможет.

Другие вопросы по тегам