Метод IValidator.Validate и добавление сообщения об ошибке в пользовательский тип - PullRequest
0 голосов
/ 01 апреля 2010

У меня есть несколько серверных элементов управления, которые реализуют интерфейс IValidator.Таким образом, у них есть свои собственные Validate() методы, которые выглядят следующим образом.

public void Validate()
{
  this.IsValid = true;
  if (someConditionFails())
  {
    ErrorMessage = "Condition failed!";
    this.IsValid = false;
  }
}

Я понимаю, что эти Validate() методы выполняются при обратной передаче до события завершения загрузки, которое выполняется до события кнопки сохраненияобработчик.Я хотел бы передать ссылку на экземпляр пользовательского класса, который собирает все сообщения об ошибках, к которым я могу получить доступ из обработчика событий кнопки «Сохранить».

Другими словами, я хотел бы что-то сделатьнапример:

public void Validate(ref SummaryOfErrorMessages sum)

Полагаю, я не могу этого сделать, поскольку подпись отличается от того, что имеет интерфейс IValidator.Другой вариант, который я могу придумать, связан с событием Load Completed, я бы перебрал все валидаторы на странице, получил бы те с IsValid = false и создал там мой SummaryOfErrorMessages.Это звучит правильно?Есть ли лучший способ сделать это?

1 Ответ

1 голос
/ 01 апреля 2010

После выполнения валидации я перебрал бы все валидаторы на странице и получил бы сводку. Вы можете найти все валидаторы от Page.Validators.

В качестве предупреждения обратите внимание, что валидаторы, которые используют только IValidator и не наследуют от BaseValidator, вообще не поддерживают группы валидации, поэтому может показаться, что отсутствие наследования от BaseValidator несколько устарело. Я был укушен этим однажды.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...