2013-07-27 150 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