【问题标题】:date validation日期验证
【发布时间】:2010-07-12 07:15:53
【问题描述】:

我们如何在 asp.net 上使用数据验证? 不能插入大于当前日期的日期。

【问题讨论】:

    标签: c# asp.net fluentvalidation fluentvalidation-2.0


    【解决方案1】:

    使用CompareValidator。大多数人使用它来比较输入到两个文本框中的两个值,但您也可以使用它来比较一个输入值和一个设置值,就像您的情况一样。

      <asp:CompareValidator id="Compare1" 
           ControlToValidate="TextBox1"
           Type="Date"
           runat="server"/>
    

    在后面的代码中设置Compare1.ValueToCompare = new DateTime(...);Compare1.Operator = ValidationCompareOperator.LessThanEqual;

    另外,请记住:您应该始终在服务器上验证以及客户端,因为客户端验证很容易关闭或绕过。我建议你看看Fluent validation

    【讨论】:

    • 对不起,这被认为是粗鲁的吗?我认为这很有帮助。这样,用户可以轻松找到有关该技术的其他问题。此外,使用该技术的其他人可以找到此问题并提供帮助。我以为我是有帮助的。是否有关于什么被认为是粗鲁的社区帖子?如果其他用户将 @ck 的评论标记为很棒的评论,我很乐意删除这些标签。这样做可能比添加您自己的评论更好,因为这将脱离本问题的主题。
    【解决方案2】:

    使用CustomValidator 将轻松解决您的问题。

    CustomValidator

    您可以使用 javascript 来验证您的日期,如下所示

    var myDate=new Date();
    myDate.setFullYear(2010,0,14);
    var today = new Date();
    
    if (myDate>today)
      {
      alert("Today is before 14th January 2010");
      }
    else
      {
      alert("Today is after 14th January 2010");
      }
    

    【讨论】:

      【解决方案3】:

      在javascript解决方案中,

      如果您只想比较日期(即日、月和年),请确保将小时、分钟、秒和毫秒设置为 0。实现上述功能的功能如下,

      function f_tcalResetTime (d_date) {
          d_date.setHours(0);
          d_date.setMinutes(0);
          d_date.setSeconds(0);
          d_date.setMilliseconds(0);
          return d_date;
      }
      

      如果比较日期,javascript 实际上会在后台调用 date.valueOf 函数,该函数返回自 1970 年 1 月 1 日午夜以来经过的毫秒数。

      【讨论】:

        【解决方案4】:

        好朋友。有很多可用的选项。您可以使用 asp.net 的自定义验证器控件、javascript 等。更好的选择是使用 AJAX 控件工具包的屏蔽编辑扩展器和屏蔽编辑验证器。您可以指定范围、自定义掩码 (yyyy/MM/dd) 甚至是空字段消息。

        只需确保正确设置网站文化,以便正确验证日期。 http://www.asp.net/ajax/ajaxcontroltoolkit/Samples/MaskedEdit/MaskedEdit.aspx

        干杯。

        <ajaxToolkit:MaskedEditValidator
        ControlExtender="MaskedEditExtender2"
        ControlToValidate="TextBox2" 
        IsValidEmpty="False" 
        MaximumValue="12000" 
        EmptyValueMessage="Number is required"
        InvalidValueMessage="Number is invalid"
        MaximumValueMessage="Number > 12000"
        MinimumValueMessage="Number < -100"
        MinimumValue="-100" 
        EmptyValueBlurredText="*" 
        InvalidValueBlurredMessage="*" 
        MaximumValueBlurredMessage="*" 
        MinimumValueBlurredText="*"
        Display="Dynamic" 
        TooltipMessage="Input a number: -100 up to 12.000"/>
        

        【讨论】:

          猜你喜欢
          • 2012-08-06
          • 2016-07-09
          • 2018-09-12
          • 2020-02-23
          • 2012-08-15
          • 2021-02-23
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多