In ASP.Net, you can use Compare Validator to compare Date but you can't compare the Time.
For that you need to write a JavaScript function and should be called in the property 'ClientValidationFunction' of Custom Validator.
You can do it by writing code in CodeBehind, but you have to be patient for postback.
So, the code you will write InLine is :-
<head runat="server">
<title>Compare Time</title>
<script language="javascript" type="text/javascript">
function compareTimes(sender, args)
{
var difference = 0;
//Get the current date
var dd= new Date();
//Set the start time and end time in the format: 'MM/dd/yyyy textvalue'
startTime = new Date(dd.getMonth()+1 +"/"+dd.getDate()+"/"+dd.getFullYear()+" "+document.getElementById('<%=txtStartTime.ClientID%>').value);
endTime = new Date(dd.getMonth()+1 +"/"+dd.getDate()+"/"+dd.getFullYear()+" "+document.getElementById('<%=txtEndTime.ClientID%>').value);
//Compute difference and then convert to minutes
difference = endTime - startTime;
minutes = Math.round(difference/(1000*60));
//If the result is negative or zero,
if (minutes<=0)
{
//show error
args.IsValid = false;
return;
}
//Otherwise pass the error
args.IsValid = true;
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
Start Time: <asp:TextBox ID="txtStartTime" runat="server" </asp:TextBox>
<br />
End Time: <asp:TextBox ID="txtEndTime" runat="server"></asp:TextBox>
<asp:CustomValidator ID="CustomValidator1" runat="server"
ControlToValidate="txtEndTime" ErrorMessage="Start Time can't be greater than or equal to End time" ClientValidationFunction="compareTimes">
</asp:CustomValidator>
<br />
<asp:Button ID="btnSave" runat="server" OnClick="btnSave_Click"
Text="Save" />
</div>
</form>
</body>
No comments:
Post a Comment