Сохранение положения прокрутки и выбранного элемента управления при обратной передаче
Вернемся к другой проблеме в Интернете.
Когда элемент управления отправляет сообщение на сервер, страница обновляется (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, см. Здесь.
Надеюсь, это поможет.