【问题标题】:Validation to make sure time difference is inside 2 hours验证以确保时差在 2 小时内
【发布时间】:2011-04-06 09:56:51
【问题描述】:

我的 asp.net Web 应用程序中有开始时间和结束时间。现在我想验证如果选择开始时间,比如上午 10:00,那么应该选择结束时间,间隔为 2 小时或更短。因此,如果我选择 01:00 PM 作为结束时间,那么这不应该发生。

如何验证相同?

【问题讨论】:

  • 你调查过自定义验证器吗?
  • 是的,但我不确定在验证时间到来时它是如何工作的

标签: c# javascript asp.net visual-studio validation


【解决方案1】:

如果您在 DateTime 类上使用加法或减法,它会返回一个 TimeSpan,可以在条件中进行比较。

在创建新的 TimeSpan 类时,您可以以这种形式设置小时小步舞曲和秒数:

new TimeSpan(hours, minutes, seconds);

在你的情况下你想使用:

new TimeSpan(2, 0, 0);

试试这样的:

//Assuming you created your variables and assigned them somewhere above
DateTime startTime, endTime;
if(endTime - startTime > new TimeSpan(2, 0, 0)) {
    //validation error
}

【讨论】:

    【解决方案2】:
    1. 使用类型=DateTime 的 CompareValidator 以确保 EndTime > BeginTime。这也将验证它们都是有效的时间值。
    2. 使用 CustomValidator(C# 和可选的 JavaScript)来强制执行 2 小时规则。
    3. 可选择添加 1 或 2 个RequiredFieldValidators

    【讨论】:

    • 如何使用 customvalidator 来执行 2 小时规则?
    • 只需双击并写出 C# 事件:解码来自 2 个文本框的字符串,减去,检查 diff.TotalMinutes
    【解决方案3】:

    如前所述,您可以使用自定义验证实现。这将检查当前选择的“开始”时间是否不超过 2 小时(或完全取决于您的条件)。

    要查看的另一件事是“范围验证”,它应该满足您的要求。在 MSDN 上查看示例:http://msdn.microsoft.com/en-us/library/aa479013.aspx#aspnet-validateaspnetservercontrols_topic5

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-04
      • 1970-01-01
      • 2018-04-18
      • 1970-01-01
      • 2022-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多