【问题标题】:How to validate integer and float input in an ASP.NET textbox如何验证 ASP.NET 文本框中的整数和浮点输入
【发布时间】:2010-03-04 09:54:04
【问题描述】:

我正在使用下面的代码来验证 ASP.NET 中的整数和浮点数,但如果我不输入小数,则会出现错误。

 <asp:TextBox ID="txtAjaxFloat" runat="server" />
 <cc1:FilteredTextBoxExtender ID="FilteredTextBoxExtender1" TargetControlID="txtAjaxFloat" FilterType="Custom, numbers" ValidChars="." runat="server" />

我也有来自 What's a C# regular expression that'll validate currency, float or integer? 的正则表达式,但是如果我只输入小数点后的一个值,它会给出验证错误..

【问题讨论】:

    标签: asp.net validation


    【解决方案1】:

    使用ControlValidators。

    例如(来自链接)

    <asp:textbox id="textbox1" runat="server"/>
    <asp:RangeValidator id="valRange" runat="server"
        ControlToValidate="textbox1"
        MaximumValue="12/31/1998"
        MinimumValue="1/1/1998"
        Type="Date"
        ErrorMessage="* The date must be between 1/1/1998 and 12/13/1998"
        Display="static">*</asp:RangeValidator>
    >
    

    Type 属性可以是“String”、“Integer”、“Double”、“Date”或“Currency”之一

    【讨论】:

    • 链接不相关。
    【解决方案2】:

    您可以尝试以下方法。

    <asp:TextBox ID="TextBox2" runat="server" Style="z-index: 103; left: 289px; position: absolute; top: 132px"></asp:TextBox>
    <cc1:FilteredTextBoxExtender
        ID="FilteredTextBoxExtender1"
        runat="server"
        TargetControlID="TextBox2"
        ValidChars="0123456789.">
    </cc1:FilteredTextBoxExtender>
    

    【讨论】:

      【解决方案3】:
      <asp:RegularExpressionValidator
          ID="RegularExpressionValidator6"
          runat="server"
          ControlToValidate="TBHd"
          ValidationExpression="([0-9])[0-9]*[.]?[0-9]*"
          ErrorMessage="Invalid Entry">
      </asp:RegularExpressionValidator>
      

      【讨论】:

        【解决方案4】:

        简单的解析怎么样?例如

        int i;
        if (!int.TryParse(txtAjaxFloat.Text, out i))
           i = 0;
        
        float f;
        if (!float.TryParse(txtAjaxFloat.Text, out f))
           f = 0;
        

        其中 0 是您的默认“无法验证”值。

        【讨论】:

          【解决方案5】:

          我们可以使用 CompareValidator 和 Datatypecheck Operator 来勾选文本框中文本的数据类型。

          <asp:CompareValidator ID="CValid" runat="server" ControlToValidate="txtName" Display="Dynamic" ErrorMessage="Float value required." Operator="DataTypeCheck" SetFocusOnError="True" Type="Double"></asp:CompareValidator>
          

          【讨论】:

          • 只提供一段代码而没有任何注释并不是最佳答案。请在您的代码中添加几句话。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-04-04
          相关资源
          最近更新 更多