Hi..
This is a better solution to extend the behaviour of your text boxes, because
1) You are not allowing the user to enter non numeric values
2) You have better control even if user user makes changes both text boxes regularly.
Say you have columns like the below:
<Columns>
<asp:TemplateField HeaderText="Odometer Begin">
<ItemTemplate>
<asp:TextBox runat="server" ID="OdometerBegin" onkeydown="return jsDecimals(event);" onblur="return validateBegin();" ></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Odometer End">
<ItemTemplate>
<asp:TextBox runat="server" ID="OdometerEnd" onkeydown="return jsDecimals(event);" onblur="return validateEnd();" ></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
</Columns>
And use the below Java script functions:
function validateEnd() {
var beginTxtBox = event.srcElement.id.replace('OdometerEnd', 'OdometerBegin');
var beginNum = document.getElementById(beginTxtBox).value;
var endNum = document.getElementById(event.srcElement.id).value;
if (endNum != '') {
if (parseInt(endNum) < parseInt(beginNum)){
alert('Please enter End Number greater than Begin Number');
return false;
}
}
else {
alert('Please Enter a valid numeric value');
}
}
function validateBegin() {
var endTxtBox = event.srcElement.id.replace('OdometerBegin', 'OdometerEnd');
var beginNum = document.getElementById(event.srcElement.id).value;
var endNum = document.getElementById(endTxtBox).value;
if (beginNum != '') {
if (parseInt(endNum) < parseInt(beginNum)) {
alert('Please enter End Number greater than Begin Number');
return false;
}
}
else {
alert('Please Enter a valid numeric value');
}
}
function jsDecimals(e) {
var evt = (e) ? e : window.event;
var key = (evt.keyCode) ? evt.keyCode : evt.which;
if (key != null) {
key = parseInt(key, 10);
if ((key < 48 || key > 57) && (key < 96 || key > 105)) {
if (!jsIsUserFriendlyChar(key, "Decimals")) {
return false;
}
}
else {
if (evt.shiftKey) {
return false;
}
}
}
return true;
}
function jsIsUserFriendlyChar(val, step) {
if (val == 8 || val == 9 || val == 13 || val == 45 || val == 46) {
return true;
}
if ((val > 16 && val < 21) || (val > 34 && val < 41)) {
return true;
}
if (step == "Decimals") {
if (val == 190 || val == 110) {
return true;
}
}
return false;
}