Сравнить дату валидатора со временем

Я использую следующий код, чтобы убедиться, что в мое текстовое поле введена правильная дата:

<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"/>

Но когда я ввожу дату с проверкой времени не удается. Есть ли способ заставить этот тип валидатора принимать даты со временем тоже, или мне нужно для этого создать собственный валидатор? Если бы мне пришлось идти по пути пользовательской проверки, что бы вы предложили?

2 ответа

@Prabu правильно, хотя. Используйте CustomValidator.

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;
        }
    }

Для проверки дат лучше использовать пользовательский валидатор. Чтобы пользователь не вводил дату и время,

используйте расширитель календаря Ajax и установите для свойства readonly значение true.

Другие вопросы по тегам