ASP.NET验证建议

时间:2013-01-28 01:54:14

标签: asp.net

简单地说,我现在有8个文本框从左到右,最右边有一个标签。 这就像是时间表的员工工作表,您可以将时间表放入其中 每个文本框,它计算时间和输出到右边的标签。

现在,我需要验证每个文本框中的数字,第一个文本框是“in”,第二个是“out” 并且第3次再次“进入”,第4次再次“退出”等等。 验证任务将是

  • 如果他们都是数字
  • 如果数字介于范围之间(具有用户输入而不是:以分钟为单位的时间),那么1:39将是1.39并且不能用于 例子2.61。 1·; = X< = 1.59
  • 在“in”之后,必须有一个“out”,并且不能立即跟随“in”
  • 例如,第1个框和第4个框可以有一些值,第2个和第3个框可以为空。但是,第4个框中的值必须等于或大于第1个框。

我不知道如何解决这个问题。我需要一个干净,简单,易于管理,可扩展的 优雅的编程结构。有办法吗?

我尝试过验证器控件,但是有限制。我应该为每个人都有一个功能吗? 验证任务并调用它们中的每一个? (我有一个名为calculate的按钮,它将启动所有这些)。

我认为这对于拥有者来说是一个简单的解决方案 但它变得非常复杂和忙乱。有人可以向正确的方向倾斜吗? 对不起复杂的规则。顺便说一句,我对ASP.NET很陌生并且想要 看看大师将如何解决这个问题。 请帮忙。

1 个答案:

答案 0 :(得分:2)

您的说明听起来像是在尝试计算4班制记录的总小时数 InTimeShift1,OutTimeShift1; InTimeShift2,OutTimeShift2; InTimeShift3,OutTimeShift4; InTimeShift4,OutTimeShift4

您不应该使用数字代替时间。例如,您的员工如何在下午2:35快速键入InTime?在数量上,它将是2.5833333333333333。我不相信你的所有用户都是数学专家。

相反,允许用户键入实际的InTime和OutTime。

然后进行验证:

Public Function fnbIsValidInputs( pvsTime As String) As Boolean
    Dim vbValidationOK As Boolean = False
    If IsDate( InTimeShift1 ) And IsDate( InTimeShift2 ) And IsDate( InTimeShift3 ) _
        And IsDate( InTimeShift4 ) And IsDate( OutTimeShift1 ) _
        And IsDate( OutTimeShift2 ) And IsDate( OutTimeShift3 ) _
        And IsDate( OutTimeShift4 ) Then vbValidationOK = True

    Return vbValidationOK
End Function

Public Function fniMinutesClocked( pvdInTime As Date, pvdOutTime As Date ) As Long
    Return DateDiff( DateInterval.Minute, pvdInTime, pvdOutTime )
End Function