我创建了一个自定义控件和一个自定义验证器(扩展BaseValidator)。在自定义控件上,我设置了ValidationProperty(“Values”)。问题是发送回发时验证不起作用,除非我执行Page.Validate()。当我调用Page.Validate()时,所有验证器都被执行,这不是我在回发时所期望的。
所以问题是如何创建自定义验证器,它将在控制值发生变化时执行并仅验证该控件?
答案 0 :(得分:1)
这不是验证者的工作方式。除非您使用ValidationGroup设置,否则页面上的所有验证器都将自动触发。您不必显式调用Page.Validate()。您需要将代码包装在这样的支票中,但是:
if(Page.IsValid)
{
//do something here
}
与客户端验证器不同,服务器端验证不会阻止页面正常回发和处理事件。
创建一个仅在控制值更改时需要验证的控件需要一些hackery,因为更改事件在验证程序执行后触发。
答案 1 :(得分:0)
您是否尝试过使用验证组?