Как я могу использовать 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) Валюта