你可以使用asp:customvalidator与asp:ChangePassword控件吗?

时间:2009-05-28 21:19:43

标签: asp.net customvalidator

我正在寻找有关如何为asp:ChangePassword控件使用自定义验证控件的想法。在asp:CustomValidator控件上设置“ControlToValidate”属性的简单尝试导致:

无法验证由'passwordValidation'的ControlToValidate属性引用的控件'changePassword1'。

感谢。

4 个答案:

答案 0 :(得分:2)

导致此错误消息的基本问题是ChangePassword控件没有在类级别设置“ValidationProperty”属性。如前所述,您可以从CustomValidator中省略ControlToValidate属性。这可能是ChangePassword控件的最佳计划。

如果您尝试将CustomValidator与自定义控件一起使用,请在自定义控件的类上设置ValidationProperty:

[DefaultProperty("StateName"), ValidationProperty("StateName")]
public class StateBox: CompositeControl
{
    ...

如果要将CustomValidator与未设置ValidationProperty属性的库控件一起使用,请从库控件派生一个类,并在派生类上设置ValidationProperty。

答案 1 :(得分:1)

如果您使用javascript直接获取控件,则可以使用CustomValidator验证任何内容。无法设置ControlToValidate意味着您无法获取EventArgs中的数据并且必须自己获取。

答案 2 :(得分:0)

您需要将ChangePassword控件更改为模板化控件才能使用自定义验证程序。请务必将自定义验证程序的验证组设置为与模板中的其他控件相同。或者,ChangePassword控件具有可满足您需求的NewPasswordRegularExpression属性。

答案 3 :(得分:0)

是的,只需使用模板:

http://quickstarts.asp.net/QuickStartv20/util/srcview.aspx?path=~/aspnet/samples/ctrlref/login/ChangePasswordTemplates.src

http://quickstarts.asp.net/quickstartv20/aspnet/doc/ctrlref/login/changepassword.aspx

只要textbox-id为“Username”(或您要验证的任何内容),您就可以向模板添加任何类型的验证器。