我有一个包含多个CustomValidators的页面,我希望在出现错误时将焦点带到有问题的验证器。我知道这可以通过客户端验证,但是它可以与服务器端一起使用吗?
此外,CustomValidators位于页面的不同部分,因此当验证失败时,我不能简单地将页面滚动到一个常规位置。
我试过了: SetFocusOnError 验证后,按钮单击后立即使用CustomValidator.Focus(),并在Page.PreRender()
中提前致谢
答案 0 :(得分:0)
感谢同事,我有一个解决这个问题的方法。这很简单,我希望我能想到它!只需在验证器失败时注入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函数,它滚动到作为参数传入的元素。