比较下拉列表的验证与AM / PM格式的时间

时间:2013-04-30 12:46:47

标签: c# asp.net

我有4个下拉菜单:这是下拉代码。

<asp:DropDownList ID="DDL_TimeFromMon" runat="server">
                                    <asp:ListItem Text="1" Value="1"></asp:ListItem>
                                    <asp:ListItem Text="2" Value="2"></asp:ListItem>
                                    <asp:ListItem Text="3" Value="3"></asp:ListItem>
                                    <asp:ListItem Text="4" Value="4"></asp:ListItem>
                                    <asp:ListItem Text="5" Value="5"></asp:ListItem>
                                    <asp:ListItem Text="6" Value="6"></asp:ListItem>
                                    <asp:ListItem Text="7" Value="7"></asp:ListItem>
                                    <asp:ListItem Text="8" Value="8"></asp:ListItem>
                                    <asp:ListItem Text="9" Value="9"></asp:ListItem>
                                    <asp:ListItem Text="10" Value="10"></asp:ListItem>
                                    <asp:ListItem Text="11" Value="11"></asp:ListItem>
                                    <asp:ListItem Text="12" Value="12"></asp:ListItem>
                                </asp:DropDownList>
                                <asp:DropDownList ID="ddl_MonFromAMPM" runat="server">
                                    <asp:ListItem Text="AM" Value="AM"></asp:ListItem>
                                    <asp:ListItem Text="PM" Value="PM"></asp:ListItem>
                                </asp:DropDownList>

                                &nbsp;<asp:Label ID="Label1" runat="server" ForeColor="Gray" Text="to"></asp:Label>
                                <asp:DropDownList ID="DDL_TimeToMon" runat="server">
                                    <asp:ListItem Text="1" Value="1"></asp:ListItem>
                                    <asp:ListItem Text="2" Value="2"></asp:ListItem>
                                    <asp:ListItem Text="3" Value="3"></asp:ListItem>
                                    <asp:ListItem Text="4" Value="4"></asp:ListItem>
                                    <asp:ListItem Text="5" Value="5"></asp:ListItem>
                                    <asp:ListItem Text="6" Value="6"></asp:ListItem>
                                    <asp:ListItem Text="7" Value="7"></asp:ListItem>
                                    <asp:ListItem Text="8" Value="8"></asp:ListItem>
                                    <asp:ListItem Text="9" Value="9"></asp:ListItem>
                                    <asp:ListItem Text="10" Value="10"></asp:ListItem>
                                    <asp:ListItem Text="11" Value="11"></asp:ListItem>
                                    <asp:ListItem Text="12" Value="12"></asp:ListItem>
                                </asp:DropDownList>
                                <asp:DropDownList ID="ddl_MonToAMPM" runat="server">
                                    <asp:ListItem Text="AM" Value="AM"></asp:ListItem>
                                    <asp:ListItem Text="PM" Value="PM"></asp:ListItem>
                                </asp:DropDownList>

一次下拉是12小时内的时间,另一次下午是上午/下午。同样重复下降。比较验证器如何工作,以便我们可以验证时间是否大于时间。上午下午。我在两者上都尝试了比较验证器,但是当我选择drop以及任何值时它会给出错误。请指出正确的方向。如果比较验证器无法做到这一点,那么请使用jquery或javascrpt的示例代码进行验证。 提前致谢

1 个答案:

答案 0 :(得分:2)

你可以使用这样的customvalidator:

标记:

<asp:CustomValidator ID="CustomValidator1" runat="server"
ErrorMessage="Select a valid time" OnServerValidate="TimeValidate">
</asp:CustomValidator>

代码隐藏:

protected void TimeValidate(object source, ServerValidateEventArgs args)
{
        int fromVal = int.Parse(DDL_TimeFromMon.SelectedValue)
        int toVal = int.Parse(DDL_TimeToMon.SelectedValue)
        string fromAMPM = ddl_MonFromAMPM.SelectedValue
        string toAMPM = ddl_MonToAMPM.SelectedValue

        if(fromAMPM == "AM" && toAMPM == "PM")
            args.IsValid = True
        else if(toAMPM == "AM" && fromAMPM == "PM")
            args.IsValid = False
        else
            args.IsValid = fromVal < toVal 
}