2013-07-27 120 views
0

我有两个接受日期的文本框。我使用了一个比较验证程序来检查在第二个文本框中输入的日期> =在第一个文本框中输入的日期。比较验证器不适用于AJAX日历扩展器

<table> 
    <tr> 
     <td> 
      <asp:Label runat="server" ID="lblDate" Width="200px" Text="Date Posted:"></asp:Label></td> 
     <td> 
      <asp:TextBox ID="txtDatePosted" runat="server" Width="200px" CausesValidation="true"></asp:TextBox> 
      <asp:Image ID="Image1" runat="server" Width="16px" AlternateText="" ImageUrl="~/Image/cal.jpg" Height="16px" /> 
      <ajaxToolkit:CalendarExtender ID="calExtDatePost" runat="server" Format="dd/MM/yyyy" PopupButtonID="btnCalenderPopup" PopupPosition="TopRight" TargetControlID="txtDatePosted" /> 
     </td> 
    </tr> 
    <tr> 
     <td> 
      <asp:Label runat="server" ID="lblExpiryDate" Width="200px" Text="Expiry Date:"></asp:Label></td> 
     <td> 
      <asp:TextBox ID="txtExpdate" runat="server" Width="200px" CausesValidation="true"></asp:TextBox> 
      <asp:Image ID="Image2" runat="server" Width="16px" AlternateText="" ImageUrl="~/Image/cal.jpg" Height="16px" /> 
      <ajaxToolkit:CalendarExtender ID="CalendarExtender1" runat="server" Format="dd/MM/yyyy" PopupButtonID="btnCalenderPopup" PopupPosition="TopRight" TargetControlID="txtExpdate" /> 
      <asp:CompareValidator ID="CompareValidator1" runat="server" ErrorMessage="Expiry date must be greater than Posted date" ControlToCompare="txtDatePosted" ControlToValidate="txtExpdate" Operator="GreaterThanEqual" ValidationGroup="vsNewUser" Type="Date" Text="*Expiry date must be greater than Posted date"></asp:CompareValidator> 
     </td> 
    </tr> 
</table> 

但验证器不工作。它总是显示错误信息。请帮帮我。

我知道的比较验证采用以下格式:

1/1/2001

2001年1月1日

5/4/2012

而这两个文本框接受日期格式如'27/07/2013'。

+0

您使用的是什么版本的ajaxcontroltoolkit? –

+0

4.1.7.607是文件版本。 – Tannya

回答

0

问题不在Ajax Control Toolkit中。

您的代码不工作,因为CompareValidator使用System.Globalization.DateTimeFormatInfo.CurrentInfo.ShortDatePattern属性来确定如何将字符串转换为日期。 CompareValidator支持ymd,mdydmy日期格式。

而要解决您的问题,您需要明确指定Page.Culture属性DateTimeFormatInfo.CurrentInfo.ShortDatePattern等于dd/MM/yyyy。例如en-GB