Как не показывать 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, и это должно решить.