如何使自定义控件可validation?

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

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

我理解为什么,CompareValidator无法对Panel合理的validation。 那么我需要添加到自定义控件中以使validation器能够validation它?

我尝试向我的Panel添加一个Text属性,它返回3个DropDownLists的Text属性的组合。 徒劳无功。

我已经尝试寻找可validation控件( TextBox )实现的某些接口( ITextControl )并将它们添加到我的自定义控件中。 徒劳无功。

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

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

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