当我将 9:00 输入Start控件, 16:00 进入Finish时;以下代码未通过验证。
有没有人知道我可以在没有日期的情况下使用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,它似乎就像验证器应该能够处理的那样。
答案 0 :(得分:8)
这显然无法完成。
记录;我使用了自定义验证器。
编辑:这是我的自定义验证码,以防任何人(即alhambraeidos)需要它。请注意,此代码将我的示例控件名称(txtStart&amp; txtFinish)替换为我的应用程序中的实际名称(txtReady&amp; 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;
}
答案 1 :(得分:0)
尝试将Type属性更改为String,它应该可以工作。
答案 2 :(得分:0)
Comparevalidator允许的类型是: 串, 整数, 双, 日期(没时间) 货币