Date validation with ASP.NET validator
Best option would be
Add a compare validator to the web form. Set its controlToValidate. Set its Type property to Date. Set its operator property to DataTypeCheck eg:
<asp:CompareValidator id="dateValidator" runat="server" Type="Date" Operator="DataTypeCheck" ControlToValidate="txtDatecompleted" ErrorMessage="Please enter a valid date."></asp:CompareValidator>
A CustomValidator would also work here:
<asp:CustomValidator runat="server" ID="valDateRange" ControlToValidate="txtDatecompleted" onservervalidate="valDateRange_ServerValidate" ErrorMessage="enter valid date" />
Code-behind:
protected void valDateRange_ServerValidate(object source, ServerValidateEventArgs args){ DateTime minDate = DateTime.Parse("1000/12/28"); DateTime maxDate = DateTime.Parse("9999/12/28"); DateTime dt; args.IsValid = (DateTime.TryParse(args.Value, out dt) && dt <= maxDate && dt >= minDate);}
I think the following is the easiest way to do it.
<asp:TextBox ID="DateControl" runat="server" Visible="False"></asp:TextBox><asp:RangeValidator ID ="rvDate" runat ="server" ControlToValidate="DateControl" ErrorMessage="Invalid Date" Type="Date" MinimumValue="01/01/1900" MaximumValue="01/01/2100" Display="Dynamic"></asp:RangeValidator>