0

我尝试指定从 4 到 13 的范围。但它保持错误“最大值 13 不能小于 RangeValidator1 的最小值 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>

这是按钮中的代码:


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

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

        }
    }

任何帮助表示赞赏。

4

4 回答 4

3

Integer当您将 RangeValidator 用于整数类型值时,请设置类型。

<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 与 Password 字段一起使用。在这种情况下,您限制用户将值放在4-13. 您可能想检查输入的长度。为此,您使用正则表达式验证器。

<asp:RegularExpressionValidator ID="RegexVal" ValidationExpression="^.{4,13}$"  runat="server" ErrorMessage="Password must be 4-13 character long" ControlToValidate="TextBox2"  />
于 2014-01-11T09:50:00.587 回答
1

类型应该是整数而不是字符串

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

谷歌翻译了下面的错误信息。密码必须由 4-13 个字符组成。

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

于 2014-01-11T09:50:13.890 回答
1

RangeValidator 验证控件的值,而不是值的长度。对于字符串比较,“13”小于“4”,因此您会收到“max < 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>
于 2014-01-11T09:53:04.543 回答
1

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

于 2014-01-11T09:52:04.800 回答