【问题标题】:Validate time within a range验证范围内的时间
【发布时间】:2012-10-22 07:38:53
【问题描述】:

我有一个 TextBox 和 AjaxControlToolkit MaskedEditExtender 供用户输入时间。该控件绑定到代码中的时间跨度属性(以及 SQL Server 中的 time(7) 列)。要求是确保所有时间都在 1800h 和 0000h 之间(用于蝙蝠记录)。谁能建议如何使用 MaskedEditValidator 来确保输入的时间在这个范围内?

到目前为止我的代码:

<asp:TextBox ID="txtEmergenceTime" runat="server"  CssClass="formInput"
    Text='<%# Eval("EmergenceTime", "{0:hh\:mm}") %>' />
<asp:MaskedEditExtender ID="meeEmergenceTime" runat="server"
    TargetControlID="txtEmergenceTime" Mask="99:99" MaskType="Time"
    AutoComplete="false" AutoCompleteValue="0"/>
<asp:MaskedEditValidator ID="valEmergenceTime" runat="server"
    ErrorMessage="Emergence time must be between 18:00 and 00:00"
    CssClass="error" ControlToValidate="txtEmergenceTime"
    ValidationGroup="roostCount">*</asp:MaskedEditValidator>

【问题讨论】:

    标签: asp.net validation ajaxcontroltoolkit


    【解决方案1】:

    您可以设置从 18:00 到 23:59 的时间间隔,并利用 MaskedEditValidato 的 MinimumValueMaximumValue 属性。或者您可以为验证器扩展器定义ClientValidationFunction 属性并使用自定义验证

    【讨论】:

    • 感谢您的指点。上面我的服务器控件的语法不太正确(例如,没有 ControlExtender 属性)。但是,即使在修复之后,我也无法使用 MinimumValue 和 MaximumValue 显示错误消息 - 尽管它确实显示了无效时间,例如18:99 并在我输入超出范围的值时阻止更新我的表单。我也无法在验证摘要中显示错误消息。看起来很多人对这个验证控件有问题,所以我可能会改用普通的 CustomValidator(如果成功则更新问题)。
    猜你喜欢
    • 2017-01-19
    • 2015-04-16
    • 2011-08-16
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多