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

Baz*_*zzz 6 c# asp.net validation

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

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

我理解为什么,CompareValidator无法明智地验证任何东西Panel.那么我需要将哪些内容添加到自定义控件中以使验证程序能够对其进行验证呢?

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

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

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

Jam*_*son 5

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

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