2014-01-11 38 views
0

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


 <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) 
     { 

     } 
    } 

任何帮助表示赞赏。

回答

1

RangeValidator验证控件的值,而不是值的长度。对于字符串比较“13”小于“4”,所以你得到“最大<分钟”的错误。

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

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

嗨,我尝试按照你说的使用RegularExpressionValidator。但它不是有效的。当我在文本框中输入2个字符并点击按钮时什么都没有发生。 –

+0

您的原始代码错过了RangeValidator的ValidationGroup =“Group1”。尝试将其添加到正则表达式验证器。 – PashaPash

+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" /> 
+0

类型=“整数”是一个好主意。非常感谢。 –

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是正确的

1

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