为RangeValidator指定范围时出错

时间:2014-01-11 09:45:47

标签: c# asp.net rangevalidator

我尝试指定范围从4到13.但它保持错误“MaximumValue 13不能小于RangeValidator1的MinimumValue 4。”我该怎么解决这个问题。这是我的代码:


     <asp:TextBox ID="TextBox2" runat="server" ValidationGroup="Group1"></asp:TextBox>
     <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" 
                ControlToValidate="TextBox2" ErrorMessage="กรุณากรอก Password" ForeColor="Red" 
                ValidationGroup="Group1">*</asp:RequiredFieldValidator>
     <asp:RangeValidator ID="RangeValidator1" runat="server"
                ControlToValidate="TextBox2" 
                ErrorMessage="Password ต้องมีความยาวตั้งแต่ 4-13 ตัวอักษร" ForeColor="Red" 
                MaximumValue="13" MinimumValue="4" Type="String" EnableClientScript="false">*</asp:RangeValidator>

这是Button中的代码:


    protected void Button2_Click1(object sender, EventArgs e)
    {
        try
        {
            if (Page.IsValid)
            {

            }
            else
            {
                Insert();
            }
        }
        catch (Exception ex)
        {

        }
    }

任何帮助表示感谢。

4 个答案:

答案 0 :(得分:2)

在对整数类型值使用RangeValidator时设置类型Integer

<asp:RangeValidator ID="RangeValidator1" runat="server"
                ControlToValidate="TextBox2" 
                ErrorMessage="Password ต้องมีความยาวตั้งแต่ 4-13 ตัวอักษร" ForeColor="Red" 
                MaximumValue="13" MinimumValue="4" Type="Integer" EnableClientScript="false">*</asp:RangeValidator>

但我很惊讶您使用带有密码字段的RangeValidator。在这种情况下,您限制用户将值放在4-13之间。 您可能想检查输入的长度。为此,您使用正则表达式验证器。

<asp:RegularExpressionValidator ID="RegexVal" ValidationExpression="^.{4,13}$"  runat="server" ErrorMessage="Password must be 4-13 character long" ControlToValidate="TextBox2"  />

答案 1 :(得分:1)

Type应该是Integer而不是String

<asp:RangeValidator ID="RangeValidator1" runat="server"
            ControlToValidate="TextBox2" 
            ErrorMessage="Password ต้องมีความยาวตั้งแต่ 4-13 ตัวอักษร" ForeColor="Red" 
            MaximumValue="13" MinimumValue="4" Type="Integer" EnableClientScript="false">*
</asp:RangeValidator>

Google翻译了以下错误消息。 密码必须包含4-13个字符。

PashaPash的回答https://stackoverflow.com/a/21060857/263003是正确的

答案 2 :(得分:1)

当前要检查的指定数据类型设置为字符串。 “4”大于“13”,这就是你得到这样一个错误的原因。将控件中的Type参数更改为Integer,它应该可以工作。

答案 3 :(得分:1)

RangeValidator验证控件的值,而不是值长度。对于字符串比较,“13”小于“4”,因此您得到“max&lt; min”错误。

您应该使用RegularExpressionValidator来检查输入长度:

 <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server"
            ControlToValidate="TextBox2" 
            ErrorMessage="Password ต้องมีความยาวตั้งแต่ 4-13 ตัวอักษร" ForeColor="Red" 
            ValidationExpression="^.{4,13}$" ValidationGroup="Group1" EnableClientScript="false">*</asp:RegularExpressionValidator>