Поддержка ASP TextBox для десятичных чисел с помощью. (Точка)

У меня есть страница ASP, и на этой странице находится TextBox. Этот TextBox имеет тип Double и в конце кода имеет десятичный тип.

Вот TextBox.

            <asp:TableCell>
                <asp:TextBox ID="txtPremium" runat="server" Width="90px"></asp:TextBox>
                <asp:RequiredFieldValidator ID="rfvPremium" runat="server" ControlToValidate="txtPremium"
                    ErrorMessage="Required" ForeColor="Red" Display="Dynamic" ValidationGroup="Insert"></asp:RequiredFieldValidator>
                <asp:CompareValidator ID="txtPremium_Integer" runat="server" ValidationGroup="Insert"
                    ControlToValidate="txtPremium" Display="Dynamic" ErrorMessage="'Premium' must be decimal"
                    ForeColor="Red" Operator="DataTypeCheck" SetFocusOnError="true" Type="Double" />
            </asp:TableCell>

В пользовательском интерфейсе, когда я пытаюсь добавить значение в это текстовое поле, такое как 10.0 (с точкой), появляется сообщение об ошибке текстового поля. Когда я пытаюсь ввести значение, равное 10,0 (с запятой), оно принимается. Мне нужно уметь вводить точку.

Я попытался изменить тип текстового поля на валюту, но такая же ошибка возникает. В списке типов текстового поля нет других соответствующих типов.

Для завершения здесь будет объявление текстового поля в моем коде.

Dim _premium As Decimal = Decimal.Parse(txtPremium.Text)

Я не уверен, что я могу сделать для текстового поля, чтобы принять точки.

Есть идеи?

asp.net,vb.net,textbox,decimal-point,

0

Ответов: 2


0 принят

Привет, валидатор сравнения используется для сравнения значений между двумя полями, например пароль и соответствующий пароль

если вы хотите проверить валидатор регулярных выражений десятичного числа с выражением, принимающим десятичное значение. замените 2 в следующем выражении с максимально допустимым десятичным значением ^ d +. d {0,2}

    <asp:RegularExpressionValidator runat="server" ErrorMessage="Decimal Only" ID="txtregpre" ValidationGroup="Insert"
                       ControlToValidate="txtPremium"              
ValidationExpression="^d+.d{0,2}$"></asp:RegularExpressionValidator>

1

Вы можете использовать регулярное выражение вместо проверки валидации, вот пример, работающий как для 10.0, так и 10,0

   <asp:TableCell>
        <asp:TextBox ID="txtPremium" runat="server" Width="90px"></asp:TextBox>
        <asp:RequiredFieldValidator ID="rfvPremium" runat="server" ControlToValidate="txtPremium"
            ErrorMessage="Required" ForeColor="Red" Display="Dynamic" ValidationGroup="Insert"></asp:RequiredFieldValidator>
        <!-- Your Regular Expression Validator -->
        <asp:RegularExpressionValidator ID="txtPremium_Integer"
            ControlToValidate="txtPremium" ValidationGroup="Insert" ForeColor="Red"
            runat="server" Display="Dynamic"
            ErrorMessage="'Premium' must be decimal"
            ValidationExpression="^d+([,.]d{1,2})?$">
        </asp:RegularExpressionValidator>
    </asp:TableCell>
asp.net, vb.net, текстовое поле, десятичной точки,
Похожие вопросы
Яндекс.Метрика