Как я могу использовать CompareValidator для времен без дат?

Когда я ввожу 9:00 в элемент управления "Пуск" и 16:00 - " Готово"; приведенный ниже код не проходит проверку.

Кто-нибудь знает, как я могу использовать валидатор ASP.NET для времен без дат?

Start <asp:TextBox ID="txtStart" runat="server" /> (hh:mm)
<br />
Finish <asp:TextBox ID="txtFinish" runat="server" /> (hh:mm)
<br />
<asp:CompareValidator
    id="cpvFinish"
    ControlToValidate="txtFinish"
    ControlToCompare="txtStart"
    Operator="GreaterThanEqual"
    Type="Date"
    Display="Static"
    EnableClientScript="true"
    ErrorMessage="Finish time must be later than the start time."
    runat="server" />

PS Я знаю, что вместо этого я могу легко использовать CustomValidator, просто кажется, что этот валидатор должен уметь справляться.

3 ответа

Решение

Это, очевидно, не может быть сделано.

Для записи; Я использовал собственный валидатор.

РЕДАКТИРОВАТЬ: Вот мой пользовательский код валидатора на случай, если кому-то (например, alhambraeidos) это нужно. Обратите внимание, этот код заменяет мои примеры имен элементов управления (txtStart & txtFinish) фактическими именами из моего приложения (txtReady & txtClose).

try
{
    // parse & compare dates
    string randomDt = "01/01/2000 ";
    args.IsValid = DateTime.Parse(randomDt + txtClose.Text) > DateTime.Parse(randomDt + txtReady.Text);
}
catch(Exception /*ex*/)
{
    // exception is assumed to be invalid times entered
    args.IsValid = false;
}

Попытайтесь изменить свойство Type на String, оно должно работать.

Сравните допустимые типы валидатора: Stinrg, Integer, Double, Date (no time) Валюта

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