RangeValidator使用特定日期无法按预期工作

时间:2013-06-26 16:22:31

标签: asp.net .net rangevalidator

当我尝试提交特定日期“20-10-2013”​​(国际格式:2013-10-20“)时,rangevalidator会抛出无效日期的错误消息

<asp:TextBox ID="txtDataInicial" runat="server" Width="55px"></asp:TextBox>
<asp:RangeValidator ID="rgvDtInicial" runat="server" ControlToValidate="txtDataInicial"
    Display="Static" MinimumValue="01/01/1800" MaximumValue="31/12/9999" Type="Date"
    ErrorMessage="A data inicial, deve ter o seguinte formato: DD/MM/AAAA"
    ValidationGroup="Consultar"></asp:RangeValidator>
<asp:Button ID="btnConsultar" runat="server" Style="width: 150px;" Text="Consultar"
    OnClick="btnConsultar_Click" ValidationGroup="Consultar" />

适用于“19-10-2013”​​,“21-10-2013”​​,“20-10-2014”,“20-10-2012”等日期。

我提交此日期时就会发生这种情况! 有谁知道为什么?

2 个答案:

答案 0 :(得分:0)

日期是文化依赖的。在web.config或Page指令中以编程方式声明性地指定您的文化。

检查出来:http://msdn.microsoft.com/en-us/library/bz9tc508(v=vs.100).aspx

答案 1 :(得分:0)

  1. Rangevalidator控制前端代码 这是错误的罪魁祸首。确保将cultureinvariantvalues设置为false。

  2. 确保指定正确的最小值和最小值。代码背后的最大日期范围。

  3. 这是为了将我们的日期比较标准化为culture =&#34; en-GB&#34;使用&#34; dd / mm / yyyy&#34;独立于服务器本地化设置。您可以使用&#34; en-US&#34;格式为&#34; mm-dd-yyyy&#34;。

  4. http://chinteongtan.blogspot.com/2014_04_01_archive.html