Web用户控件和验证

Xav*_*nas 11 asp.net validation user-controls

我有一个ASP.Net Web用户控件,其中包含一个TextBox和Ajax Control Toolkit中的日历.

当我在我的页面上包含这个用户控件时,我希望它参与输入验证(在UC内的TextBox上设置了一个必需的文件验证器),即.当页面被验证时,UC的内容也应该被验证.所以我让我的UC实现了IValidator接口,除了我无法在用户控件上设置验证组之外,它运行良好.显然我应该继承BaseValidator来做到这一点,但我不能,因为我已经继承了UserControl.

必须有办法处理这种常见情况.

Sjo*_*erd 13

您可以通过用美元符号分隔两个控件来引用用户控件中的控件:

<asp:RequiredFieldValidator ControlToValidate="MyUserControl$ControlId" runat="server" />
Run Code Online (Sandbox Code Playgroud)


Sco*_*vey 10

在新用户控件上创建一个属性,该属性在包含的验证器上设置验证组.然后从标记中,您只需在控件上设置ValidationGroup属性,然后滚动到用户控件中包含的验证器.除非您正在创建JUST验证用户控件,否则您可能不需要接口或继承BaseValidator.

public string ValidationGroup
{
   get
   {
      return MyRequiredFieldValidator.ValidationGroup;
   }
   set
   {
      MyRequiredFieldValidator.ValidationGroup = value;
   }
}
Run Code Online (Sandbox Code Playgroud)