如何使自定义控件可验证?

时间:2012-05-09 17:37:05

标签: c# asp.net validation

我有一个基于Panel的自定义控件。它只是一个带有3个DropDownLists的简单面板。如果我向我的WebForm添加CompareValidator并将ControlToValidate属性设置为我的自定义控件的ID,则会出现以下错误:

Control '{0}' referenced by the ControlToValidate property of '{1}' cannot be validated.

我理解为什么,CompareValidator无法明智地验证Panel的任何内容。那么我需要添加到自定义控件中以使验证器能够对其进行验证呢?

我尝试在我的Panel中添加Text属性,该属性返回3个DropDownLists的Text属性的组合。没有用。

我尝试查找可验证控件(ITextControl)实现的某些接口(TextBox),并将它们添加到我的自定义控件中。没有用。

如何基于Panel进行自定义控件,可以通过常规的.net验证器进行验证? (RequiredFieldValidator,CompareValidator等)

1 个答案:

答案 0 :(得分:5)

如果您还没有,则需要将ValidationProperty属性添加到您的类中,以便它知道要用于验证的属性:

[ValidationProperty("Text")]
[ToolboxData("<{0}:YourCustomControl runat=server></{0}:YourCustomControl>")]
public class YourCustomControl : WebControl
...