Подтвердить что ты не робот

Проверка правильности ValidationGroup с кода

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

Что-то вроде:

Page.IsValid("MyValidationGroup")
4b9b3361

Ответ 1

protected bool IsGroupValid(string sValidationGroup)
{
   foreach (BaseValidator validator in Page.Validators)
   {
      if (validator.ValidationGroup == sValidationGroup)
      {
         bool fValid = validator.IsValid;
         if (fValid)
         {
            validator.Validate();
            fValid = validator.IsValid;
            validator.IsValid = true;
         }
         if (!fValid)
            return false;
      }

   }
   return true;
}

Ответ 2

Вы пытались использовать метод Page.Validate(string)? Основываясь на документации, похоже, что это может быть то, что вы хотите.

Page.Validate("MyValidationGroup");
if (Page.IsValid)
{
    // your code here.
}

Обратите внимание, что также будут активированы валидаторы на элементе управления, которые также вызвали обратную передачу. Снайпер из статьи MSDN...

Метод Validate проверяет указанной группы проверки. После вызов метода Validate на группа проверки, метод IsValid вернет true, только если указанной группы проверки и валидационной группы контроля, которая заставляли страницу размещаться на сервер действительны.

Ответ 3

var isValidGroup = Page
                    .GetValidators(sValidationGroup)
                    .Cast<IValidator>()
                    .All(x => x.IsValid);

Ответ 4

Попробуйте следующее:

Page.Validate("MyValidationGroup");
if (Page.IsValid) 
{
    //Continue with your logic
}
else
{
    //Display errors, hide controls, etc.
}

Не совсем то, что вы хотите, но, надеюсь, близко.

Ответ 5

Page.IsValid будет false, если какая-либо из проверенных групп проверки недействительна. Если вы хотите проверить группу и посмотреть статус, попробуйте:

    protected bool IsGroupValid(string sValidationGroup)
    {
        Page.Validate(sValidationGroup);
        foreach (BaseValidator validator in Page.GetValidators(sValidationGroup))
        {
            if (!validator.IsValid)
            {
                return false;
            }
        }
        return true;
    }

Ответ 6

Ответ Павла работает, но не самый простой. Вот как я это решил:

protected Boolean validateGroup(String validationGroupName) {
        Boolean isGroupValid = true;

        foreach (BaseValidator validatorControl in Page.GetValidators(validationGroupName)) {
            validatorControl.Validate();

            if (!validatorControl.IsValid)
                isGroupValid = false;
        }

        if (!isGroupValid)
            return false;
        else
            return true;
    }