I have never used a popup calendar because I think it is quicker for a user who may have just entered a name and address, perhaps, to continue to use their keyboard to enter a date (or two). Anyway, that should not be relevant to the immediate problem. Try the following... Create a page with the following content:
<%@ Page Language="VB" %>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Test</title>
</head>
<body>
<form id="form1" runat="server">
<div>
Date Range:
<asp:Textbox id="txtDate1" runat="server" columns="15" Text="01/04/2006" />
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"
ControlToValidate="txtDate1" ErrorMessage="Date must be entered" Display="Dynamic" />
to
<asp:Textbox id="txtDate2" runat="server" columns="15" Text="03/01/2009" />
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server"
ControlToValidate="txtDate2" ErrorMessage="Date must be entered" Display="Dynamic" />
<asp:CompareValidator ID="CompareValidator1" runat="server"
ErrorMessage="Date must be in the format dd/mm/yyyy and it must be after the first date"
ControlToValidate="txtDate2" Type="Date" Display="Dynamic" Operator="GreaterThanEqual"
ControlToCompare="txtDate1" />
</div>
</form>
</body>
</html>
... then test it, change the second date to 03/01/2006 and press the tab key. A suitable error message should appear. Change the second date to 03/01/2007, press the tab key and the error message should disappear. Hope that helps. If not try looking in C:\Inetpub\wwwroot\aspnet_client\system_web\1_1_4322\WebUIValidation.js (assuming you are running IIS and your website root folder is C:\Inetpub\wwwroot). I'm not sure if this is the up-to-date JavaScript validation code, especially if you are using ASP.NET 2.0 (or 3.0!) but the version number of 125 suggests it is OK. I really hope my example helps because the JavaScript code takes a fair bit of time to get to understand. Cheers, Dave. :) -- modified at 15:29 Tuesday 2nd January, 2007