Добавление RequiredFieldValidator runtime - PullRequest
2 голосов
/ 11 декабря 2011

У меня есть ASP.NET usercontrol (форма регистрации), и мне нужно добавить среду выполнения requiredFieldValidator.Тем не менее, это не работает.Вот как я могу добавить валидатор.

System.Web.UI.WebControls.RequiredFieldValidator nameValidator = new System.Web.UI.WebControls.RequiredFieldValidator();
nameValidator.ControlToValidate = "SignUpName";
nameValidator.ErrorMessage = "You must provide your name";
nameValidator.ID = "nameValidator";
nameValidator.Display = ValidatorDisplay.Dynamic;
this.Page.Validators.Add(nameValidator);

Что мне не хватает?

-------- РЕДАКТИРОВАТЬ ---------

Я так и не нашел решения для этого.Я достиг своей цели, используя CustomValidator и выполняя всю проверку вручную.

Ответы [ 3 ]

3 голосов
/ 11 декабря 2011

Если вы добавляете элементы управления, включая валидаторы, динамически, вам нужно добавить их на Page_Init, а не на Page_Load, иначе они не будут добавлены в дерево элементов управления правильно, т.е. они не участвуют в ViewState

Возможно, вам лучше использовать пользовательский валидатор, чем динамически добавлять требуемый валидатор. Динамическое управление в asp.net стало для меня ничем иным, как проблемой. Я бы избежал, если есть другое решение.

0 голосов
/ 11 декабря 2011

Рассмотрим эти две вещи:

  • Сделать элемент управления для проверки добавлен в иерархию элемента управления страницы перед добавлением вашего валидатора.
  • Добавьте ваш валидатор в Page.Controls, а не Page.Validators
0 голосов
/ 11 декабря 2011

Не могли бы вы попробовать, как показано ниже:

Просто передать идентификатор управления на ControlToValidate,

nameValidator.ControlToValidate = SignUpName.ClientID; // or SignUpName.UniqueID
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...