Я занимаюсь разработкой веб-приложения, в котором я хотел бы выполнить набор проверок для определенного поля (имя учетной записи в конкретном случае).
Мне нужно проверить, что значение не пустое, соответствует определенному шаблону и еще не используется.
Я попытался создать UserControl, который объединяет RequiredFieldValidator, RegexValidator и CustomValidator, затем я создал свойство ControlToValidate
, например:
public partial class AccountNameValidator : System.Web.UI.UserControl {
public string ControlToValidate {
get { return ViewState["ControlToValidate"] as string; }
set {
ViewState["ControlToValidate"] = value;
AccountNameRequiredFieldValidator.ControlToValidate = value;
AccountNameRegexValidator.ControlToValidate = value;
AccountNameUniqueValidator.ControlToValidate = value;
}
}
}
Однако, если я вставляю элемент управления на страницу и устанавливаю ControlToValidate
для некоторого идентификатора элемента управления, при загрузке страницы появляется сообщение об ошибке Невозможно найти идентификатор элемента управления "AccountName", на который ссылается ControlToValidate свойство AccountNameRequiredFieldValidator , которое заставляет меня думать, что элементы управления внутри моего UserControl не могут правильно разрешать элементы управления на родительской странице.
Итак, у меня два вопроса:
1) Можно ли иметь элементы управления validator внутри UserControl для проверки элемента управления на родительской странице?
2) Является ли правильной и эффективной практикой "объединять" несколько элементов управления валидатора в UserControl? Если нет, то каков стандартный путь?