如何在没有日期的情况下使用CompareValidator?

时间:2009-01-30 21:19:12

标签: validation asp.net-2.0 comparevalidator

当我将 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,它似乎就像验证器应该能够处理的那样。

3 个答案:

答案 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允许的类型是: 串, 整数, 双, 日期(没时间) 货币