我尝试指定4到13的范围。但它保持错误“MaximumValue 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)
        {

        }
    }
.

任何帮助感谢。

有帮助吗?

解决方案

RangeValidator验证控件的值,而不是值长度。对于字符串比较“13”小于“4”,因此您将获得“最大

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

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

其他提示

使用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。在这种情况下,您将限制用户在Integer之间放置值。 您可能想要检查输入的长度。为此,使用正则表达式验证器。

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

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

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

<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/211060857/263003 是正确的一个

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top