Можно ли использовать asp:customvalidator с элементом управления asp:ChangePassword?

Я ищу идеи о том, как использовать настраиваемый элемент управления проверки для элемента управления asp:ChangePassword. Простая попытка установить свойство ControlToValidate в элементе управления asp:CustomValidator приводит к следующему:

Элемент управления «changePassword1», на который ссылается свойство ControlToValidate «passwordValidation», не может быть проверен.

Спасибо.


person Dave K    schedule 28.05.2009    source источник


Ответы (4)


Основная проблема, которая приводит к этому сообщению об ошибке, заключается в том, что элемент управления ChangePassword не имеет атрибута ValidationProperty, установленного на уровне класса. Как упоминалось ранее, вы можете просто исключить атрибут ControlToValidate из вашего CustomValidator. Вероятно, это лучший план для элемента управления ChangePassword.

Если вы пытаетесь использовать CustomValidator с пользовательским элементом управления, установите ValidationProperty в классе вашего пользовательского элемента управления:

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

Если вы хотите использовать CustomValidator с библиотечным элементом управления, у которого не установлен атрибут ValidationProperty, создайте класс из библиотечного элемента управления и установите ValidationProperty в своем производном классе.

person P.J. Tezza    schedule 22.07.2009

Вы можете проверить что угодно с помощью CustomValidator, если вы используете javascript для прямого доступа к элементам управления. Отсутствие возможности установить ControlToValidate означает, что вы не получаете данные в EventArgs и должны получать их самостоятельно.

person jrcs3    schedule 28.05.2009

Вам нужно изменить элемент управления ChangePassword на шаблонный элемент управления, чтобы использовать пользовательский валидатор. Убедитесь, что группа проверки пользовательского валидатора настроена так же, как и другие элементы управления в шаблоне. Кроме того, элемент управления ChangePassword имеет свойство NewPasswordRegularExpression, которое может удовлетворить ваши потребности.

person Jamie Ide    schedule 28.05.2009

Да, просто используйте шаблоны:

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

Пока идентификатор текстового поля равен «Имя пользователя» (или что-то еще, что вы хотите проверить), вы можете добавить в шаблон любой валидатор.

person Stefan    schedule 29.05.2009