我正在寻找有关如何为asp:ChangePassword控件使用自定义验证控件的想法。在asp:CustomValidator控件上设置“ControlToValidate”属性的简单尝试导致:
无法验证由'passwordValidation'的ControlToValidate属性引用的控件'changePassword1'。
感谢。
答案 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/aspnet/doc/ctrlref/login/changepassword.aspx
只要textbox-id为“Username”(或您要验证的任何内容),您就可以向模板添加任何类型的验证器。