asp.net
  • vb.net
  • comparevalidator
  • 2012-03-05 47 views 1 likes 
    1

    即使比較驗證程序較大且即使較少,它也始終會進行觸發。compareValidator與具有日期的文本框進行比較

    <tr> 
        <td> 
         Selection Start Date: 
        </td> 
        <td> 
         <asp:TextBox ID="SelectionStartDateTextBox" runat="server" 
            Text='<%# Bind("SelectionStartDate") %>'></asp:TextBox> 
         <asp:RequiredFieldValidator runat="server" ID="RequFilesStart" 
            ControlToValidate="SelectionStartDateTextBox" 
          ErrorMessage="Enter Selection Start date!" ValidationGroup="validation1"> 
         </asp:RequiredFieldValidator> 
        </td> 
    </tr> 
    <tr> 
        <td> 
         Selection End Date: 
        </td> 
        <td> 
         <asp:TextBox ID="SelectionEndDateTextBox" runat="server" 
            Text='<%# Bind("SelectionEndDate") %>'></asp:TextBox> 
         <asp:RequiredFieldValidator runat="server" ID="ReqFiledEnd" 
            ControlToValidate="SelectionEndDateTextBox" 
          ErrorMessage="Enter Selection End date!" ValidationGroup="validation1"> 
         </asp:RequiredFieldValidator> 
         <asp:CompareValidator ID="CompareValSelDate" runat="server" 
          ControlToValidate="SelectionEndDateTextBox" 
          ControlToCompare="SelectionStartDateTextBox" 
          CultureInvariantValues="true" Type="Date" 
          Operator="LessThanEqual" ValidationGroup="validation1" 
          ErrorMessage="Selection End Date should be greater then Selected start date" 
          Display="dynamic">   
    
         </asp:CompareValidator> 
        </td> 
    </tr> 
    

    我還設置它文化=「EN-GB」並且也設置它同我的web配置。 我使用Ajax工具包,以顯示附加到文本框日曆

    <cc1:calendarextender id="Calendarextendera3" runat="server" format="dd MMM yyyy" 
          targetcontrolid="SelectionEndDateTextBox"> 
    </cc1:calendarextender> 
    
    <cc1:calendarextender id="Calendarextendera4" runat="server" format="dd MMM yyyy" 
          targetcontrolid="SelectionStartDateTextBox"> 
    </cc1:calendarextender> 
    

    請幫助我不知道該怎麼辦。

    在此先感謝

    回答

    2

    您應該設置

    CultureInvariantValues="false" 
    
    在CompareValidator

    。而且,日期格式應該是您當前文化的日期格式。 CompareValidator似乎無法比較格式dd MMM yyyy。如果你想顯示這種格式,你可以使用自定義驗證器來比較日期:

    <asp:CustomValidator runat="server" ID="datesValidator" OnServerValidate="DatesValidator_Validate" ErrorMessage="end date should be greater than or equal to start date"></asp:CustomValidator> 
    
    protected void DatesValidator_Validate(object source, ServerValidateEventArgs args) 
    { 
        DateTime startDate = Convert.ToDateTime(SelectionStartDateTextBox.Text); 
        DateTime endDate = Convert.ToDateTime(SelectionEndDateTextBox.Text); 
    
        if (endDate < startDate) 
        { 
         args.IsValid = false; 
        } 
    } 
    
    +0

    謝謝你的回覆我已經添加了你的建議,但仍然這樣做。還有什麼你認爲可能是錯誤的? – CPM 2012-03-05 14:48:58

    +0

    在calendarextender中,您可以使用當前文化的日期格式嗎?我不完全確定它是如何在GB – AGuyCalledGerald 2012-03-05 14:51:44

    +0

    我已經將它設置爲我當前的文化,並且我希望格式爲dd mmm yyyy,您是否建議更改爲dd-mm-yyyy? – CPM 2012-03-05 14:54:54

    相關問題