Когда проверка завершается неудачно внизу, почему браузер отображается вверху страницы? - PullRequest
1 голос
/ 02 ноября 2011

Я только что реализовал RequiredFieldValidatior с ValidationSummary, установив ValidationGroup.

Работает нормально, когда нажимаю соответствующую кнопку!

Но область просмотра изменяется и смещается вверху страницы, а мой результат проверки и кнопка и т. Д. Остаются в самом низу страницы, что нехорошо.

Есть ли способ предотвратить это и позволить браузеру по-прежнему делать покупки в той же области после нажатия кнопки?

Дополнительное примечание : проверка не пройдена на стороне клиента; так что никакой постбэк не происходит. По сути, проверка завершается неудачно, и область просмотра скользит вверху страницы.

Ответы [ 3 ]

2 голосов
/ 02 ноября 2011

В вашем RequiredFieldValidator есть опция SetFocusOnError, которая затем переместит курсор к типу Textbox / input.

Затем в объявлении вашей страницы вверху страницы добавьте MaintainScrollPositionOnPostback="true"

<%@ Page MaintainScrollPositionOnPostback="true" %>

2 голосов
/ 02 ноября 2011

Вы можете достичь этого, добавив следующую директиву в верхней части своей страницы:

<%@ Page MaintainScrollPositionOnPostback="true" %>
0 голосов
/ 02 ноября 2011

Я делал это раньше, чтобы установить фокус на элемент fist, который не был проверен при вызове проверки вручную:

//has to be called after Page_ClientValidate()
function ValidatorFocus()
{
    var i;
    for (i = 0; i < Page_Validators.length; i++)
    {
        if (!Page_Validators[i].isvalid)
        {
            document.getElementById(Page_Validators[i].controltovalidate).focus();
            break;
        }
    }
}
...