如何使用Customvalidator校验号码

How to use Customvalidator to check number

我正在尝试使用 Customvalidator 来检查值,并确保该值应该是整数并且不能为空。一开始,我使用 RequiredValidatorRegularExpressionValidator 来实现。但是,我无法将他们的错误消息放在同一个地方,所以我更改了我的解决方案以使用 Customvalidator。但是我还是想不通。

这是我的代码

protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
{
     DateTime dt;

     if (string.IsNullOrEmpty(args.Value))
     {
         CustomValidator1.ErrorMessage = "Can not be empty";
         args.IsValid = false;
     }

     else if (????)
     {
        ...
     }
}

您可以使用 int.TryParsedecimal.TryParse 来检查字符串是否为有效数字。

protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
{
     args.IsValid = !string.IsNullOrEmpty(args.Value);
     if (!args.IsValid)
     {
         CustomValidator1.ErrorMessage = "Can not be empty";
     }
     else
     {
         int number;
         args.IsValid = int.TryParse(args.Value, out number);
         if(!args.IsValid)
         {
             CustomValidator1.ErrorMessage = "Must be a valid integer";
         }
     }
}

请注意,您还必须将 ValidateEmptyText 设置为 true(默认值:false)。它是唯一不需要额外 RequiredFieldValidator.

的验证器