范围验证器不正常

时间:2013-10-01 06:28:14

标签: c# asp.net validation debugging rangevalidator

大家好日子。我有这个下拉列表

<asp:DropDownList ID="MonthDropDownList" runat="server">
    <asp:ListItem>--select--</asp:ListItem>
    <asp:ListItem Value="1">January</asp:ListItem>
    <asp:ListItem Value="2">February</asp:ListItem>
    <asp:ListItem Value="3">March</asp:ListItem>
    <asp:ListItem Value="4">April</asp:ListItem>
    <asp:ListItem Value="5">May</asp:ListItem>
    <asp:ListItem Value="6">June</asp:ListItem>
    <asp:ListItem Value="7">July</asp:ListItem>
    <asp:ListItem Value="8">August</asp:ListItem>
    <asp:ListItem Value="9">September</asp:ListItem>
    <asp:ListItem Value="10">October</asp:ListItem>
    <asp:ListItem Value="11">November</asp:ListItem>
    <asp:ListItem Value="12">December</asp:ListItem>
</asp:DropDownList>

我有这个范围验证器

<asp:RangeValidator ID="RangeValidator1" runat="server" ControlToValidate="MonthDropDownList"
                    ErrorMessage="RangeValidator" MaximumValue="1000" MinimumValue="1" ValidationGroup="group1">*</asp:RangeValidator><br />

问题是为什么它不是我想要的行为?如果选择--select--,如果选择了1月到12月,它应该被允许触发验证器

发生的事情是它只接受几个月。请参考屏幕截图

这是正确的,因为选择了 - 选择 - 这个词

Right

这又是正确的,因为它被接受了(所有月份都应该只接受术语--select--选中时应该触发验证器)

Right

但是这个。当我选择从2月到9月的月份时,验证器触发 WRONG

这不是我想要的。所以你能帮我解释为什么会出现这种现象吗?

范围验证器应仅在值在1&gt;内时才有效; 2月的1000个值在范围内。这就是为什么我真的不知道发生了什么。

HELP:)

1 个答案:

答案 0 :(得分:2)

如果您没有指定它将作为字符串进行比较的类型,则在Integer中将类型设为RangeValidator,因为默认类型值为String

<asp:RangeValidator  Type=Integer  ....

并且还将范围值超出默认项目

<asp:ListItem Value="-1">--select--</asp:ListItem>