创建自定义ASP.NET验证程序

时间:2009-11-20 18:09:02

标签: asp.net asp.net-3.5

我创建了一个自定义控件和一个自定义验证器(扩展BaseValidator)。在自定义控件上,我设置了ValidationProperty(“Values”)。问题是发送回发时验证不起作用,除非我执行Page.Validate()。当我调用Page.Validate()时,所有验证器都被执行,这不是我在回发时所期望的。

所以问题是如何创建自定义验证器,它将在控制值发生变化时执行并仅验证该控件?

2 个答案:

答案 0 :(得分:1)

这不是验证者的工作方式。除非您使用ValidationGroup设置,否则页面上的所有验证器都将自动触发。您不必显式调用Page.Validate()。您需要将代码包装在这样的支票中,但是:

if(Page.IsValid)
{
    //do something here
}

与客户端验证器不同,服务器端验证不会阻止页面正常回发和处理事件。

创建一个仅在控制值更改时需要验证的控件需要一些hackery,因为更改事件在验证程序执行后触发。

答案 1 :(得分:0)

您是否尝试过使用验证组?