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

时间:2012-01-11 20:44:22

标签: 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" />

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

rangeValidator1.MaximumValue = GetMaxValue(params).ToString();

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

让我感到困惑的是,只要第一个数字是'1',任何输入的整数都会通过。因此,如果maxValue 假设类似于“1234567”,则“1”将匹配,“12345678910”也将匹配。但“2”不会。 “3000”或“46000”也不会。

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

1 个答案:

答案 0 :(得分:20)

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