2013-03-21 73 views
0

我有一個Javascript增強文本框生成的日期格式爲dd/mm/yyyy,當使用asp:comparevalidator進行驗證時,無法正確驗證。c#.net using asp:CompareValidator with dates

下面是相關代碼:

<asp:CompareValidator ID="CompareValidator4" runat="server" 
         ControlToValidate="txtEndDate" ValueToCompare="txtStartDate" 
         Display="None" 
         ErrorMessage="End Date should be greater than or equal to Start Date." 
         Type="Date" Operator="GreaterThanEqual" SetFocusOnError="True">  
</asp:CompareValidator> 

<strong>Start Date</strong><asp:TextBox ID="txtStartDate" runat="server" Width="215px" CssClass="textfield" Style="width: 176px; margin-left:5px;"></asp:TextBox>&nbsp;&nbsp; 

<strong>End Date</strong><asp:TextBox ID="txtEndDate" runat="server" Width="215px" CssClass="textfield" Style="width: 176px; margin-left:5px;"></asp:TextBox>&nbsp;&nbsp; 

在情況尚不清楚我想在txtStartDate日期爲一個比txtEndDate更早。

驗證通過後,我會在驗證失敗時得到沒有明顯模式的亂碼結果。任何人都可以看到什麼是錯的?

btw我知道html是多麼窮 - 我正在編輯別人的代碼。

回答

1

你可以改變頁面的文化到en-GB

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

Found here

更新您在驗證器標記中有一個錯誤。如果你既想文本框,日期,相互比較,你必須提供ControlToValidateControlToCompare(不是ValueToCompare

<asp:CompareValidator ID="CompareValidator4" runat="server" 
    ControlToValidate="txtEndDate" 
    ControlToCompare="txtStartDate" 
    Type="Date" Operator="GreaterThanEqual" 
    Display="None" ErrorMessage="End Date should be greater than or equal to Start Date." SetFocusOnError="True"> 
</asp:CompareValidator> 
+0

嗨。我跟隨你的鏈接,並嘗試了幾件事情,在我發現這一行的過程中:CompareValidator4.ValueToCompare = DateTime.Now.ToShortDateString();在page_load函數中,當控件被驗證時,它看起來並沒有得到更新。任何想法如何糾正? – 2013-03-21 12:33:47

+0

@tracertong:編輯我的答案。 – 2013-03-21 12:42:05

+0

歡呼蒂姆! (多餘字符) – 2013-03-21 14:02:13