CompareValidator为“dd / mm / yyyy”格式

时间:2013-01-16 07:44:33

标签: c# asp.net date globalization requiredfieldvalidator

我正在增强我们现有的将在EMEA上使用的Web应用程序,我需要在运行时根据用户的全局区域将日期格式从“mm / dd / yyyy”更改为“dd / mm / yyyy”。 / p>

我的问题是我所要求的验证不接受“dd / mm / yyyy”格式。

<asp:CompareValidator ID="cvDateReportCompleted" runat="server" ErrorMessage="Report Date is not in correct format" ControlToValidate="txtDateReportCompleted" Operator="DataTypeCheck" Type="Date" ValidationGroup="vgMain" Display="None"></asp:CompareValidator>

任何人都可以提供详细信息来处理asp:CompareValidator接受“mm / dd / yyyy”或“dd / mm / yyyy”这个问题吗?

2 个答案:

答案 0 :(得分:4)

在进一步研究之前,你必须考虑这个问题:

CompareValidator非常特别关于它会接受的日期。例如,以下日期不被视为有效:

2001年1月1日
2001年1月1日

CompareValidator需要一个如下所示的日期:

1/1/2001
2001年1月1日

http://www.informit.com/articles/article.aspx?p=25461&seqNum=5

解决方案:

默认情况下,ASP.Net CompareValidator不适用于dd/mm/yyyy格式,因此我们需要将页面的Culture属性更改为en-GB中的@Pagedirective ASP.Net网页如下所示

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" 
Inherits="_Default" Culture = "en-GB" %>

Live demo

答案 1 :(得分:0)

您需要设置aspx页面的Culture

<%@ Page culture="your culture" %>.