Я создал TextBox и CompareValidator, ниже которого я думал, позволит вход в следующих формах:
К сожалению, это не позволяет версию со знаком доллара в нем. Какой смысл того, чтобы делать проверку типа по сравнению с валютой, если Вы не позволяете знак доллара? Существует ли способ позволить этот символ?
<asp:TextBox ID="tb_CostShare" runat="server" Text='<%# Eval("CostShare", "{0:$0.00}")%>' CausesValidation="true" />
<asp:CompareValidator ID="vld_CostShare"
runat="server"
ControlToValidate="tb_CostShare"
Operator="DataTypeCheck"
Type="Currency"
ValidationGroup="vld"
ErrorMessage="You must enter a dollar amount for 'Cost Share'." />
CompareValidator не поддерживает символы валюты. Вы можете префикс своего элемента управления вводом с помощью $ или использовать валидатор регулярных выражений, на этой странице есть пример.
Следующий шаблон будет соответствовать вашим примерам (любезно предоставлено http://www.regexlib.com ):
^\$?([0-9]{1,3},([0-9]{3},)*[0-9]{3}|[0-9]+)(.[0-9][0-9])?$
Кроме того, вы можете написать собственный валидатор для анализа строки, с $ или без него. Но вам нужно будет написать некоторый Javascript, чтобы получить любую проверку на стороне клиента.