Переместить фокус на средство проверки на стороне сервера

#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, которая прокручивается до элемента, переданного в качестве аргумента.