Дублирующие средства проверки

#c# #asp.net #validation

#c# #asp.net #проверка

Вопрос:

Если у меня есть более одного asp.net серверный валидатор для одного и того же элемента управления,
(предположим, что оба они могут возвращать false в определенной ситуации), и я хочу отобразить только одно сообщение (кроме сводки проверки),
как я могу достичь этой цели и сгруппировать Text свойство всех валидаторов, которые ссылаются на один и тот же элемент управления?

Если я реализую эту ситуацию, я получаю на выходе Text атрибут каждого из валидаторов…

Комментарии:

1. Попробуйте написать пользовательский валидатор

Ответ №1:

Поместите эти два элемента управления валидаторов отдельно ValidationGroup и создайте новый пользовательский валидатор, который проверяет эти два элемента управления валидаторов с помощью унифицированного сообщения.

 protected void CustomValidator (object sender, ServerValidateEventArgs e)
{
    e.IsValid = validator1.IsValid amp;amp; validator2.IsValid
}
  

Комментарии:

1. Но если я помещу их отдельно ValidationGroup , isValid одного из них не будет иметь значения, потому что он будет находиться в другой сети ValidationGroup от элемента управления, который запускает событие…

2. Может быть, я могу поместить, в то же самое ValidationGroup , но оставить текст пустым, а в CustomControl оставить ErrorMessage пустым и поместить только текст, который я хочу отобразить…

Ответ №2:

Вы можете получить его с помощью функции javascript и поместить в CustomeValidator и задать текстовое сообщение в customeValidator

 function ValidateTwoValidations(oSrc, args) {
  var Val1 = document.getElementById("Validator1ClientId");
  var Val2 = document.getElementById("Validator2ClientId");

  if (Val1.IsValid = false  amp;amp; Val2.IsValid = false){
      args.IsValid = false;
      }
   else {
       args.IsValid = true;
            }
 }