6

我正在使用 RangeValidator 验证在文本框中输入的日期,并且它在默认日期格式下工作正常,但现在我想要“dd/MM/yyy”中的日期格式,但它会使用这种日期格式生成 excption。请为我提供解决方案我的代码:

在 aspx 页面中:

<asp:TextBox ID="txtrequiredby" runat="server" ></asp:TextBox >
<cc1:CalendarExtender ID="txtrequiredby_CalendarExtender" Format="dd/MM/yyyy"
runat="server" Enabled="True" TargetControlID="txtrequiredby" >
</cc1:CalendarExtender >

 <asp:RangeValidator ID="rvreqby" runat="server" ErrorMessage="Required By Date
Greater Than or Equal to current date" ControlToValidate="txtrequiredby" 
 Display="Dynamic" Type="Date" ></asp:RangeValidator >

在代码隐藏中:

rvreqby.MinimumValue = clsGeneral.FromSqlDate( DateTime.Now);
rvreqby.MaximumValue = clsGeneral.FromSqlDate( DateTime.Now.AddYears(200));

public static string  FromSqlDate(DateTime  date)
{
   return date.ToString("dd/MM/yyyy");
}
4

2 回答 2

7

最小值和最大值需要在 Page_PreRender 事件中设置,并且似乎需要日期格式为“dd-MM-yy”...请参阅Rangevalidator Min Max Value 错误的最后一篇文章

protected void Page_PreRender(object sender, EventArgs e)
{
    RangeValidator1.MinimumValue = DateTime.Now.Date.ToString("dd-MM-yy");
    RangeValidator1.MaximumValue = DateTime.Now.Date.AddYears(90).ToString("dd-MM-yy");
}
于 2010-07-27T06:58:34.820 回答
4

最小值和最大值的格式应为 yyyy/MM/dd

在此处查看文档: https ://msdn.microsoft.com/en-us/library/ydez7ad7(v=vs.110).aspx

于 2015-01-05T15:10:27.990 回答