Web用户控件和验证

12
我有一个包含文本框和Ajax Control Toolkit的日历的ASP.Net Web用户控件。
当我在页面上包含此用户控件时,我希望它参与输入验证(文本框内设置了必需字段验证器),即当页面被验证时,UC的内容也应该被验证。因此,我让我的UC实现了IValidator接口,这很有效,但是我无法为用户控件设置验证组,因为我已经继承了UserControl,而不是BaseValidator。
显然,有一种方法可以处理这种常见情况。
4个回答

16

你可以使用美元符号将用户控件中的一个控件进行引用:

<asp:RequiredFieldValidator ControlToValidate="MyUserControl$ControlId" runat="server" />

11

在您的新用户控件上创建一个属性,用于设置包含验证器的验证组。然后在您的标记中,您只需要设置控件的ValidationGroup属性,就可以将其传递到用户控件中包含的验证器中。除非您只是创建一个验证用户控件,否则您可能不需要接口或从BaseValidator继承。

public string ValidationGroup
{
   get
   {
      return MyRequiredFieldValidator.ValidationGroup;
   }
   set
   {
      MyRequiredFieldValidator.ValidationGroup = value;
   }
}

3
尝试在您的用户控件类上添加[ValidationProperty("NameOfPropertyToBeValidated")

0

如果您计划在未来添加大量验证,那么建议您查看Peter Blum的DES(数据输入套件)-它具有许多增强的数据输入和验证控件,包括条件验证方案和您所描述的验证。与自行开发所需的时间相比,许可证非常合理。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接