日期:2014-05-18  浏览次数:20430 次

又个怪问题
最近真的是很郁闷,整天被这些验证控件缠着。

发生的事情:

我在做一个验证控件的练习时候遇到一个奇怪的问题。我在一个页面中同时使用了RequiredValidator验证控件,CompareValidator验证控件

和一个CustomValidator.

1,RequiredValidator验证控件,验证用户名不能为空。

2,CompareValidator验证控件,验证2次输入的密码必须一致(密码和密码确认)。

3,CustomValidator验证某个文本框必须输入偶数。

代码和程序都没问题,但是当出现这种情况的时候问题来了。

页面上的所有验证控件都没通过的时候,CustomValidator的错误提示消息没有显示出来(注:提示消息属性有设置,ErrorMessage和Text属性都设置了)

但是当页面中所有的控件都通过,只有CustomValidator控件没通过的时候,错误提示消息就显示了(比如:我输入一个奇数5,“只能为偶数”这个提示信息显示了)

为什么其他验证控件也没通过的时候,CustomValidator的错误提示信息不显示呢??????????

有谁遇到过这种问题?

谢谢

------解决方案--------------------
由于CustomValidator的工作原理与其他验证控件不同,其他控件都是实时的,输入完后就可看到验证结果;
而CustomValidator要去执行验证函数,这就决定了他的优先级很低,等其他验证都通过了,他再验证,
这样避免了很多无谓的提交,可以提高效率;如果有其他控件没通过,他就不用验证了
这样很正常啊