In this article I will explain how to use ASP.Net CompareValidator to compare dates in dd/mm/yyyy format.
Start Date: <asp:TextBox ID="txtStartDate" runat="server" Text = "24/02/1999"></asp:TextBox>
End Date: <asp:TextBox ID="txtEndDate" runat="server" Text = "31/12/1988"></asp:TextBox><br />
<asp:CompareValidator ID="CompareValidator1" ValidationGroup = "Date" ForeColor = "Red" runat="server"
ControlToValidate = "txtStartDate" ControlToCompare = "txtEndDate" Operator = "LessThan" Type = "Date"
ErrorMessage="Start date must be less than End date."></asp:CompareValidator>
<br />
<asp:Button ID="btnCompare" runat="server" Text="Compare" ValidationGroup = "Date"/>
By default the ASP.Net CompareValidator does not work for dd/mm/yyyy format hence we will need to change the Culture property of the page to en-GB in the @Pagedirective of the ASP.Net Web Page as show below
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" Culture = "en-GB" %>
That’s it you need to do. Below is the complete markup of the page for reference
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" Culture = "en-GB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
Start Date: <asp:TextBox ID="txtStartDate" runat="server" Text = "24/02/1999"></asp:TextBox>
End Date: <asp:TextBox ID="txtEndDate" runat="server" Text = "31/12/1988"></asp:TextBox><br />
<asp:CompareValidator ID="CompareValidator1" ValidationGroup = "Date" ForeColor = "Red" runat="server" ControlToValidate = "txtStartDate" ControlToCompare = "txtEndDate" Operator = "LessThan" Type = "Date" ErrorMessage="Start date must be less than End date."></asp:CompareValidator>
<br />
<asp:Button ID="btnCompare" runat="server" Text="Compare" ValidationGroup = "Date"/>
</form>
</body>
</html>
Demo