У меня простая форма с несколькими обязательными полями проверки валидатора и сводным контролером проверки. Когда я отправлю форму, проверка клиента заставит форму перейти в начало страницы. Если я удалю резюме проверки, страница не перемещается.
Вот пример:
<asp:TextBox ID="test" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="testrequired" runat="server" ControlToValidate="test">*</asp:RequiredFieldValidator>
<asp:ValidationSummary ID="summary" runat="server" />
<asp:Button ID="submit" runat="server" Text="submit" />
Я попытался установить SetFocusOnError="true"
в обязательном полевом валидаторе и MaintainScrollPositionOnPostback="true"
для хихиканья - даже если это не обратная передача - без везения. Известно ли решение этой проблемы?
EDIT:
Я нашел проблему в js, сгенерированном WebResource.axd. Кажется, спускается до одной строки в функции ValidationSummaryOnSubmit()
.
line 534: window.scrollTo(0,0);
Любые идеи о том, как удалить или обойти это?
EDIT2:
Быстрая работа:
- установить
EnableClientScript="false"
для всех элементов управления проверкой (отключение проверки клиента) - set
MaintainScrollPositionOnPostback="true"
в директиве страницы
Все еще надеемся на решение на стороне клиента...
EDIT3:
Кажется, лучше работать, чтобы просто переопределить функцию window.scrollTo()
, чтобы она ничего не делала при вызове с помощью проверки script:
<script type="text/javascript">
window.scrollTo = function() { }
</script>
Добавление выше всего на странице оставляет проверку клиента по тактике, но отключает метод window.scrollTo()
на всей странице