可以在 ASP.net TextBox TextMode = "DateTime" or "Date" 中阻止过去的日期
问问题
5393 次
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 回答