我试图使用Customvalidator
来检查值,并确保该值应为整数,并且它也不能为空。一开始,我使用RequiredValidator
和RegularExpressionValidator
来实现这一目标。但是,我无法将错误消息放在同一个地方,因此我将解决方案更改为使用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 (????)
{
...
}
}
答案 0 :(得分:2)
您可以使用int.TryParse
或decimal.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
的验证器。