Как не показывать BaseValidator.Text при использовании ValidationSummary в ASP.NET

Я использую кучу разных средств проверки asp.net в веб-форме. У некоторых из них свойство Text имеет такие свойства, как "* Ошибка" или "Вы пропустили эти поля".

Однако некоторые из элементов управления CustomValidator имеют пустые свойства Text. Я специально оставил их пустыми, потому что я добавляю ErrorMessage динамически в зависимости от того, в каком случае произошел сбой. (CustomValidator может иметь много разных условий, при которых я устанавливаю args.IsValid = false)

При возникновении ошибки заданное мной свойство ErrorMessage отображается как в ValidationSummary, так и внутри элемента управления Validator. Я не хочу этого Я хочу иметь возможность просто показать ErrorMessage в ValidationSummary, а не в свойстве BaseValidator.Text.

Моей первой попыткой было установить свойство Text в качестве пробела " ". Это не сработало.

То, что я реализовал (на данный момент), это период, который показан в виде того же цвета фона. Это хак - и мне это не нравится. Черт, может быть, поэтому я здесь!

Вот код:

<asp:CustomValidator ID="StackruValidator" runat="server" 
    Text="." 
    CssClass="validatorstyle"
    Display="Dynamic" 
    OnServerValidate="validate_AllowedToDoSomething" 
    ValidationGroup="MainGroup" />

<asp:ValidationSummary ID="mainGroupValidationSummary" runat="server" 
    ValidationGroup="MainGroup" 
    DisplayMode="BulletList" 
    HeaderText="There was an error in saving.  Please check the following:" />

Внутри validate_AllowedToDoSomething я вызываю:

StackruValidator.ErrorMessage = "Custom Error Message #1";
args.IsValid = false;
return;

То, что я получаю, это "Пользовательское сообщение об ошибке № 1" дважды в веб-форме. Заранее спасибо!

1 ответ

Решение

Просто установите display="none" вместо "dynamic" на BaseValidator, и это должно решить.

Другие вопросы по тегам