1

我正在使用以下代码来确保我的文本框输入了有效日期:

<asp:CompareValidator ID="cvStartDate" runat="server" Operator="DataTypeCheck" 
Type="Date" ControlToValidate="txtStartDate" ErrorMessage="Please enter the 
start date in the format of dd/MM/yyyy hh:mm"/>

但是当我输入带有时间验证的日期时失败。有没有办法让这种类型的验证器也接受带有时间的日期,或者我是否必须为此构建一个自定义验证器?如果我必须走自定义验证路线,你会建议什么?

4

2 回答 2

1

@Prabu 是正确的。使用自定义验证器。

CompareValidator 仅适用于日期,不适用于日期和时间。

protected void CustomValidator_Date(object source, ServerValidateEventArgs args)
    {
        IFormatProvider culture = new CultureInfo("en-AU", true);
        try
        {
            String[] formats = { "dd MM yyyy", "dd/MM/yyyy", "dd-MM-yyyy" };
            DateTime dt1;
            dt1 = DateTime.ParseExact(args.Value, formats, culture, DateTimeStyles.AdjustToUniversal);
            args.IsValid = true;
        }
        catch
        {
            args.IsValid = false;
        }
    }
于 2016-02-18T00:14:24.580 回答
-1

最好使用自定义验证器来验证日期。为了避免用户输入日期和时间,

使用 Ajax 日历扩展器并将只读属性设置为 true。

于 2013-11-06T09:57:48.950 回答