Позвольте мне начать с того, что я действительно пытаюсь сделать: мне нужно проверить поле для нескольких «эксклюзивных» (я объясню) критериев и отобразить одно сообщение проверки ,ASP.NET отображает одно сообщение для нескольких валидаторов
Вот мой код:
<asp:TextBox ID="Amount" runat="server" CssClass="field"></asp:TextBox>
<asp:RequiredFieldValidator Text="Amount is required"/>
<asp:CompareValidator Operator="DataTypeCheck" Type="Currency" Text="Amount must be numeric"/>
<asp:CompareValidator Operator="GreaterThanEqual" ValueToCompare="10" Type="Currency" Text="Minimum donation $10.00"/>
<asp:CompareValidator Operator="LessThan" ValueToCompare="10000" Type="Currency" Text="Wow that's too much"/>
Я кончил некоторые тег для удобства чтения - все валидаторы в одной и ту же группе проверки, они имеют идентификаторы, ControlToValidate="Amount" Display="Dynamic"
.
Если поле Сумма пуста или имеет номер в нем, все в порядке. Тем не менее, если я надену текст в поле:
Несмотря на то, < 10,> 10000 и DataTypeCheck должны быть исключительными, числовые сравнения потерпеть неудачу на струне.
Я понимаю, что для этого я мог бы использовать CustomValidator
, но я хотел бы, в конце концов, написать один текст по-своему, в своем собственном отдельном элементе <span>
.
Итак, мой неправильно (потому что они не «Что я на самом деле пытается сделать?») Являются следующие вопросы:
- Как сделать
CompareValidator
валюты типа не обязательно по тексту? или - Как отобразить только первое сообщение из нескольких валидаторов? или
- Как мне сделать то, что я хочу?
Похоже, что CustomValidator - ваш лучший вариант. Единственное, что вас останавливает, - это различие в появлении одного сообщения - его можно легко понять. – Andrei