仅允许在VB.net中过去的日期和今天的日期

时间:2009-10-26 10:38:59

标签: asp.net vb.net

我使用VB.net和Jquery Datepicker来获取日期。

在我的VB.net代码中

<tr>
    <td>
        DateOfReceiving:
    </td>
    <td colspan="3">
        <asp:TextBox ID="DateOfReceivingTextBox" runat="server"
                     CssClass="pastdatepicker" 
                     Text="DateOfReceiving" />
    </td>
</tr>

我想仅允许输入用户今天的日期或格式为dd/mm/yyyy的过去日期。我想要vb.net自定义验证。

请帮助编写vb.net正则表达式。

2 个答案:

答案 0 :(得分:2)

您可以使用RangeValidator和一些VB.NET代码执行此操作:

<tr>    
    <td>DateOfReceiving:</td>
    <td colspan="3">
        <asp:TextBox ID="DateOfReceivingTextBox" runat="server"  
                     CssClass="pastdatepicker" 
                     Text="DateOfReceiving" />

        <asp:rangevalidator runat="server" ID="DateRangeValidator"
                            ControlToValidate="DateofReceivingTextBox"
                            ErrorMessage="Date must be in the past"  
                            Display="Dynamic" Type="Date"  />

    </td>
</tr>

在代码隐藏中设置验证程序的范围,最有可能在Page_Load:

DateRangeValidator.MinimumValue = Date.MinValue.ToString("yyyy/MM/dd")
DateRangeValidator.MaximumValue = Date.Today.ToString("yyyy/MM/dd")

答案 1 :(得分:1)

您不会想要使用正则表达式。

如果要在服务器端执行此操作,则应考虑创建验证控件。我从来没有在VB.NET中做到这一点(仅仅因为我从未使用过VB.NET - 我对C#感觉更舒服),但是this page似乎是一个很好的起点。您将要继承并覆盖BaseValidator类中的方法。

除非必须,否则我通常不编写客户端代码,但看起来jQuery也支持form validation。但是,正如brad.huffman在评论中指出的那样,您可能希望避免在客户端进行日期/时间验证,因为您无法控制用户的日期/时间设置 - 它们可能不正确。