validation - 如何在没有日期的时间使用 CompareValidator?

标签 validation asp.net-2.0 comparevalidator

当我在 Start 控件中输入 9:00,在 Finish 中输入 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,这似乎是这个验证器应该能够处理的事情。

最佳答案

这显然是做不到的。

作为记录;我使用了自定义验证器。

编辑:这是我的自定义验证器代码,以防任何人(即 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;
}

关于validation - 如何在没有日期的时间使用 CompareValidator?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/497294/

相关文章:

php - 检查数组键是否存在,不区分大小写

java - 在 Spring 请求中验证枚举

button - ASP.NET 以编程方式添加带有事件的按钮

c# - 如何使用比较验证器来比较两个下拉列表值之间的数据?

c# - 日期类型 c#.net 上的比较验证器

安卓 : Form Validation Library

javascript - HTML5验证: field not required but,如果填写,必须匹配模式?

asp.net - 以编程方式诊断由于应用程序回收导致的​​ ASP.Net session 丢失?

oracle - 从 IIS 托管的 Web 应用程序连接到 Oracle 时出现 "Unhandled Execution Error"

c# - 没有 RequiredFieldValidator 的 CompareValidator?