#asp.net
#asp.net
Вопрос:
У меня есть страница с несколькими пользовательскими валидаторами, и я хочу, чтобы фокус был перенесен на нарушающий валидатор при возникновении ошибки. Я знаю, что это возможно при проверке на стороне клиента, но возможно ли это на стороне сервера?
Кроме того, пользовательские средства проверки расположены в разных частях страницы, поэтому я не могу просто прокрутить страницу в одно общее место, когда происходит сбой проверки.
Я пробовал: SetFocusOnError CustomValidator .Фокус () сразу после проверки, после нажатия кнопки и на странице.Предварительный просмотр ()
Заранее спасибо
Ответ №1:
Благодаря коллеге у меня есть решение этого вопроса. Это так просто, жаль, что я не придумал это! Просто введите javascript при сбое валидатора, и этот javascript будет выполнен при обратной передаче.
Private Sub CustomValidator_ServerValidate(ByVal source as Object, ByVal args as System.Web.UI.WebControls.ServerValidateEventArgs) Handles CustomValidator.ServerValidate
If someCondition Then
args.IsValid = True
Else
args.IsValid = False
System.Web.UI.ScriptManager.RegisterStartupScript(Me, Me.GetType(), "JumpToValidator", "jumpToValidator(validatorId);", True)
End If
End Sub`
где jumpToValidator(validatorId) — это функция javascript, которая прокручивается до элемента, переданного в качестве аргумента.