Asp.net compare validator to validate date

53,797

Solution 1

Try this approach, First Enter the Start Date and Check the Compare Validator with the End Date textbox:

<asp:CompareValidator id="cvtxtStartDate" runat="server" 
     ControlToCompare="txtStartDate" cultureinvariantvalues="true" 
     display="Dynamic" enableclientscript="true"  
     ControlToValidate="txtFinishDate" 
     ErrorMessage="Start date must be earlier than finish date"
     type="Date" setfocusonerror="true" Operator="GreaterThanEqual" 
     text="Start date must be earlier than finish date"></asp:CompareValidator>

Solution 2

Compare validator has the type=date.But that date type is constrained to accept only particular format of date i.e ToShortDateString(). If the date format of the two textboxes to be compared is in some other format like ToLongDateString() or some format specified by ToString("dd MMMM,yyyy") the comparision does not work. CustomValidator isonly option. If you want to use compare validator only then

textstartdate.text=Calendar1.SelectedDate.ToShortDateString();
textfinishdate=Calendar2.SelectedDate.ToShortDateString();
<asp:CompareValidator ID="CompareValidator4" runat="server" 
                    ControlToCompare="textstartdate" ControlToValidate="textfinishdate" 
                    CultureInvariantValues="True" 
                    ErrorMessage="Date should be greater than booking date." 
                    Operator="GreaterThanEqual" SetFocusOnError="True" Type="Date"></asp:CompareValidator>
Share:
53,797
Deeptechtons
Author by

Deeptechtons

SOreadytohelp Deeptechtons Programmer, Developer and Enthusiast always looking for chances to learn interesting technology. Meet awesome people and enhance life of people

Updated on October 12, 2020

Comments

  • Deeptechtons
    Deeptechtons over 3 years

    As you all know Compare validators can be used to validate dates and check based on operator type (<, <= , >= etc). I have set the cultureinvariantvalues="true" property to validate two textbox controls that hold dates. I have to constrain them such that the start date must be earlier than the finish date. The validation seems to fail when I type a descriptive date like below:

    StartDate: Tuesday, 21 February 2012
    
    FinishDate: Wednesday, 22 February 2012
    

    Even though 22nd is larger than 21st the validation fails. The markup I used is below. If for any reason you need format info, here it is dddd, dd MMMM yyyy

    <asp:CompareValidator id="cvtxtStartDate" runat="server" 
           controltocompare="txtFinishDate" 
           cultureinvariantvalues="true" 
           display="Dynamic" 
           enableclientscript="true" 
           controltovalidate="txtStartDate" 
           errormessage="Start date must be earlier than finish date" 
           type="Date" 
           setfocusonerror="true" 
           operator="LessThanEqual" 
           text="Start date must be earlier than finish date">