Лучший способ проверить ввод валюты? - PullRequest
6 голосов
/ 22 апреля 2010

Я создал TextBox и CompareValidator, ниже которого, я думал, можно было бы вводить данные в следующих формах:

  • 5
  • 5,00
  • $ 5,00

К сожалению, это не позволяет версию со знаком доллара. Какой смысл делать проверку типа по отношению к валюте, если вы не разрешаете знак доллара? Есть ли способ разрешить этот символ?

            <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'." />    

Ответы [ 2 ]

8 голосов
/ 22 апреля 2010

CompareValidator не поддерживает символы валюты. Вы можете добавить к своему элементу ввода префикс $ или использовать валидатор регулярных выражений, например, на этой странице есть пример.

Следующий образец будет соответствовать вашим примерам (любезно предоставлено http://www.regexlib.com):

^\$?([0-9]{1,3},([0-9]{3},)*[0-9]{3}|[0-9]+)(.[0-9][0-9])?$
1 голос
/ 23 апреля 2010

Кроме того, вы можете написать собственный валидатор для разбора строки, с или без $. Но вам нужно было бы написать немного Javascript, чтобы получить подтверждение на стороне клиента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...