RequiredFieldValidator和CustomValidator同时开火?

时间:2011-05-07 12:54:23

标签: asp.net customvalidator requiredfieldvalidator

我有一个asp.net文件:

  • 3个收音机盒,必须选择一个
  • 必须选择项目的列表框
  • 验证码验证

现在我有4个验证器:

  • Radio Box的CustomValidator
  • 列表框的CustomValidator
  • 用于验证码验证的CustomValidator(保存在会话中)
  • captcha-textbox的RequiredFieldValidator不为空。

我的问题是订单。 如果用户尝试发送公式并且所有4个验证器都是错误的,则只显示RequiredFieldValidator,因为其他3个是服务器端。 用户现在认为“哦,只有一个错误”并纠正了它。 之后,其他3个错误发生了,用户可能会对此感到有点生气 - “为什么系统在第一次播放时没有告诉我?”

那么,如何有一个用户友好的解决方案?

有没有办法同时触发服务器端验证,客户端验证失败了? 或者有没有办法在服务器端激活客户端验证?

(注意!我试图重新调用RequiredFieldValidator,而是做第四个CustomValidator。我这样做,我有4个CustomValidator,没有Requ-Field-Val。最终,没有CustomValidator会被命中,在公式之后是发送=(我不知道为什么。)

2 个答案:

答案 0 :(得分:2)

其中一种方法是使用EnableClientScript属性关闭所需字段验证程序的客户端验证。以便在服务器端进行所有验证。

但更好的方法(如果可能)将对所有这些使用客户端验证,即使用自定义验证逻辑和使用ClientValidationFunction属性的自定义验证器 - 请参阅此article以获取此类示例。

答案 1 :(得分:1)

为Controls验证器和Submit函数添加ValidationGroup =“abc”属性使用Page.Validate(“abc”)方法在某个时间验证服务器端控件。

像这样。

Page.Validate("abc")
If Not Page.IsValid Then
    Return False  
End If