Я использую кучу разных средств проверки 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» дважды в веб-форме. Заранее спасибо!