3

可以在 ASP.net TextBox TextMode = "DateTime" or "Date" 中阻止过去的日期

4

2 回答 2

3

我假设这是 WebForms,在这种情况下是的,您可以使用RangeValidator. 像这样:

<asp:TextBox runat="server" ID="dateField" />
<asp:RangeValidator runat="server" Type="Date" ControlToValidate="dateField" 
MaximumValue="9999/12/28" 
MinimumValue="1000/12/28" 
ErrorMessage="enter valid date" />

您需要根据需要设置MinimumValue属性。您可以从代码隐藏或页内<script>块中执行此操作:

this.rangeValidator.MinimumValue = DateTime.UtcNow.Subtract( new TimeSpan(13,0,0) ).ToString("G", CultureInfo.InvariantCulture);

请注意我使用UtcNow并减去 13 小时来获得真实的、全球可接受的最小日期值。您可能希望根据您的应用程序更改此设置(例如将其限制为您的服务器的时区,前提是您的用户所期望的)。

于 2013-03-03T10:34:25.790 回答
2

这篇文章应该可以帮助你

输入元素规范min 属性(如果指定)必须具有一个有效的全局日期和时间字符串值。max 属性(如果指定)的值必须是有效的全局日期和时间字符串

您可能会从后面的代码中执行此操作

yourTextBox.Attributes.Add("min", DateTime.Now.ToString());
于 2013-03-03T10:44:10.917 回答