如何使用Customvalidator检查号码

时间:2015-04-22 09:07:26

标签: asp.net validation webforms customvalidator

我试图使用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 (????)
     {
        ...
     }
}

1 个答案:

答案 0 :(得分:2)

您可以使用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的验证器。