您可以将 asp:customvalidator 与 asp:ChangePassword 控件一起使用吗?
我正在寻找有关如何对 asp:ChangePassword 控件使用自定义验证控件的想法。 尝试在 asp:CustomValidator 控件上设置“ControlToValidate”属性会导致:
无法验证“passwordValidation”的 ControlToValidate 属性引用的控件“changePassword1”。
谢谢。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
导致此错误消息的根本问题是 ChangePassword 控件没有在类级别设置“ValidationProperty”属性。 如前所述,您可以从 CustomValidator 中省略 ControlToValidate 属性。 这可能是 ChangePassword 控件的最佳计划。
如果您尝试将 CustomValidator 与自定义控件一起使用,请在自定义控件的类上设置 ValidationProperty:
如果要将 CustomValidator 与未设置 ValidationProperty 属性的库控件一起使用,请从库控件派生一个类并设置派生类上的 ValidationProperty。
The fundamental problem that leads to this error message is that the ChangePassword control doesn't have a "ValidationProperty" attribute set at the class level. As mentioned earlier, you can just leave out the ControlToValidate attribute from your CustomValidator. This is probably the best plan for the ChangePassword control.
If you are trying to use CustomValidator with a custom control, set the ValidationProperty on your custom control's class:
If you want to use CustomValidator with a library control that doesn't have the ValidationProperty attribute set, derive a class from the library control and set the ValidationProperty on your derived class.
如果您使用 javascript 直接获取控件,则可以使用 CustomValidator 验证任何内容。 无法设置 ControlToValidate 意味着您无法获取 EventArgs 中的数据,必须自己获取。
You can validate anything with CustomValidator if you use javascript to get the controls directly. Not being able to set ControlToValidate means that you don't get the data in the EventArgs and have to get it yourself.
您需要将 ChangePassword 控件更改为模板化控件才能使用自定义验证器。 请务必将自定义验证器的验证组设置为与模板中的其他控件相同。 或者,ChangePassword 控件有一个 NewPasswordRegularExpression 属性,可以满足您的需求。
You need to change the ChangePassword control to be a templated control in order to use a custom validator. Be sure to set the custom validator's validation group to be the same as the other controls in the template. Alternatively, the ChangePassword control has a NewPasswordRegularExpression property that may meet your needs.
是的,只需使用模板:
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 是“用户名”(或任何您想要验证的内容),您就可以向模板添加任何类型的验证器。
Yes, just use templates:
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
As long as the textbox-id is "Username" (or whatever you want to validate), you can add any kind of validator to the template.