文本框上的asp.net范围验证器

Jor*_*man 14 c# asp.net

我有一个asp:textbox附加了必需和范围验证器,代码如下所示:

ASP:

<asp:TextBox ID="textBox1" runat="server" CausesValidation="true"></asp:TextBox>
<asp:RangeValidator ID="rangeValidator1" runat="server" ControlToValidate="textBox1" MaximumValue="1" MinimumValue="0"
     ValidationGroup="valid" ForeColor="Red" ErrorMessage="Out of Range" />
<asp:RequiredFieldValidator ID="requiredValidator1" runat="server" ControlToValidate="textBox1"
     ValidationGroup="valid" ForeColor="Red" ErrorMessage="Cannot be blank" />
Run Code Online (Sandbox Code Playgroud)

当页面被动态加载时(在快速回调之后),我有代码可以MaximumValue将RangeValidator 更改为更具体的值.这是代码:

rangeValidator1.MaximumValue = GetMaxValue(params).ToString();
Run Code Online (Sandbox Code Playgroud)

现在,我已经设置了断点,并且rangeValidator1.MaximumValue正确设置,但是,当页面加载时,我查看编译的客户端javascript,看起来最大值仍然只有1.

令我困惑的是,只要第一个数字是'1',任何输入的整数都将通过.因此,如果maxValue 应该类似于"1234567",则"1"将匹配,"12345678910"也将匹配.但"2"不会."3000"或"46000"也不会.

还有其他人在Textboxes上有类似的RangeValidators问题吗?

And*_*ber 20

RangeValidator处理多种类型的验证.您应该确保将Type设置为Integer.或者什么是合适的.