【发布时间】:2011-06-23 12:16:18
【问题描述】:
我一直在处理一个 .NET/C# 表单,其中包含两个由下拉列表构建的时间字段。时间 A 由小时和分钟的两个下拉菜单组成,时间 B 也由小时和分钟的两个下拉菜单组成。我需要比较两者以确保时间 A 始终大于 B。
我可以只使用 CompareValidator 来检查小时数,这有效但不考虑分钟数。所以让我们假设以下场景:
A = 11:00 B = 12:15 很好,我的验证接受了它应该做的 A = 11:15 B = 11:00 被接受,因为小时数相等,但其他情况下不应通过,因为分钟数未经验证
在使用下拉菜单的情况下,您如何确保 B 始终等于或大于 A?如果我可以更改但不允许这样做,我会这样做。
【问题讨论】:
-
上午/下午呢?如果您使用 12 小时制时间,则下午 1:15 将出现在上午 11:30 之前。 (编辑:不确定您是打算一天中的实际时间还是只是时间跨度。以上评论仅适用于一天中的时间)
-
另外,你打算什么时候验证?每次更改下拉列表?这会产生 UI 问题。假设我有 A=9:15 和 B=10:00。如果我想将 B 更改为 9:30,请将 10 更改为 9,然后,哎呀!收到错误消息,因为现在 9:00 早于 9:15。 (tl;dr) 不要在下拉更改时验证此内容,稍后再验证。
标签: c# asp.net validation comparevalidator