asp.net比较验证器日期星期日

时间:2011-10-17 12:33:50

标签: c# asp.net validation datetime

我正在使用asp.net和c#开发一个Web应用程序。我的页面中有一个文本框,它输入一个简单的日期。我已经使用CompareValidator来验证这个文本框,但是当用户输入特定日期(10月的第3个星期日,例如:10/16/2011或10/17/2010或10/18/2009)时,比较验证器说它是失效日期。有人知道它发生了什么吗?

我的比较验证器:

<asp:CompareValidator ID="cvDataProtocolo" runat="server" 
     ControlToValidate="txtDataProtocolo" Display="Dynamic" 
     ErrorMessage="Data Inválida" 
     SetFocusOnError="True" Type="Date" Operator="DataTypeCheck" 
     ValidationGroup="vProtocolo"></asp:CompareValidator>

编辑-----

是的,我写了10/16/2011只是为了理解,我的文化设置为pt-BR(葡萄牙语巴西),而在巴西我们使用格式dd / MM / yyyy而且CompareValidator无效16/10 / 2011年(格式为dd / MM / yyyy)为有效格式。我已经在我的网络表单中设置了我的文化:

protected override void InitializeCulture() {
    Page.Culture = CultureInfo.GetCultureInfoByIetfLanguageTag("pt-BR").ToString();
    Page.UICulture = CultureInfo.GetCultureInfoByIetfLanguageTag("pt-BR").ToString();

    System.Threading.Thread.CurrentThread.CurrentCulture = New CultureInfo("pt-BR");
    System.Threading.Thread.CurrentThread.CurrentUICulture = New CultureInfo("pt-BR");
}

谢谢

2 个答案:

答案 0 :(得分:1)

确保您正确设置了您的文化,例如在英国,10/16/2011表示第16个月的第10天,这将是无效的日期。

有关详细信息,请参阅此处:http://msdn.microsoft.com/en-us/library/bz9tc508.aspx

答案 1 :(得分:0)

CompareValidator使用当前线程的CultureInfo来获取您的日期格式。如果要使用特定的colture和日期格式,请将此声明添加到页面中:

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