【问题标题】:Range Validator Not acting normal范围验证器不正常
【发布时间】:2013-10-01 06:28:13
【问题描述】:

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

<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 月,则应该允许它

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

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

这是再次正确的,因为它被接受(所有月份只应接受术语 - 选择 - 选定时应触发验证器)

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

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

只有当值在 1->1000 个 2 月的值在范围内时,范围验证器才应该工作。这就是为什么我真的不知道发生了什么。

帮助:)

【问题讨论】:

    标签: c# asp.net validation debugging rangevalidator


    【解决方案1】:

    在您的RangeValidator 中将类型指定为Integer,如果您未指定它将作为字符串比较的类型,因为默认类型值为String

    <asp:RangeValidator  Type=Integer  ....
    

    并且还将超出范围的值赋予默认项

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

    【讨论】:

    • 哇,谢谢 :) 我会尽快接受,我也赞成 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-23
    • 1970-01-01
    • 1970-01-01
    • 2015-04-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多