Как не показывать BaseValidator.Text при использовании ValidationSummary в ASP.NET - PullRequest
0 голосов
/ 08 января 2009

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

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

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

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

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

Вот код:

<asp:CustomValidator ID="StackOverflowValidator" 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, который я вызываю:

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

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

1 Ответ

9 голосов
/ 08 января 2009

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

...