mygrid = new dhtmlXGridObject(‘gridbox’);
mygrid.setImagePath("…/codebase/imgs/");
mygrid.preventIECaching(true);
mygrid.setOnRowSelectHandler(doOnRowSelected,true);
mygrid.init();
mygrid.loadXML("…/Get.aspx",function(){mygrid.setColumnHidden(0,true);});
myDataProcessor = new dataProcessor("…/Update.aspx");
myDataProcessor.setVerificator(3,checkIfNotZero);"+
myDataProcessor.setUpdateMode(“off”);
myDataProcessor.setTransactionMode(“GET”);
myDataProcessor.init(mygrid);
myDataProcessor.enableDebug(true);
mygrid1 = new dhtmlXGridObject(‘gridbox1’);
mygrid1.setImagePath("…/codebase/imgs/");
mygrid1.attachEvent(“onEditCell”,function(s,id,ind){
if (ind==13) return false;
return true;});
mygrid1.preventIECaching(true);
function doOnRowSelected(id){
var z=myDataProcessor.obj.getUserData(id,"!nativeeditor_status");
if (z==“inserted” || z==“deleted” || z==“updated”)
{return false;}
else {
myDataProcessor1 = new dataProcessor("…/Select.aspx");
myDataProcessor1.setUpdateMode(“off”);
myDataProcessor1.setTransactionMode(“GET”);
myDataProcessor1.init(mygrid);
myDataProcessor1.enableDebug(true);
myDataProcessor1.setUpdated(id,true);
myDataProcessor1.sendData();
mygrid1.init();
mygrid1.loadXML("…/Get1.aspx");}}
myDataProcessor2 = new dataProcessor("…/Update1.aspx");
myDataProcessor2.setUpdateMode(“off”);
myDataProcessor2.setTransactionMode(“GET”);
myDataProcessor2.init(shiftgrid);
myDataProcessor2.enableDebug(true);
function checkIfNotZero(value,colName){
if(value.toString()._dhx_trim()==""){
var msger = document.getElementById(“messanger”);
msger.innerHTML = colName+ " should not be empty";
return false;
}else return true;}
The validation function for the myDataProcessor() is not behaving as expected. when i click on the insert a new row button for some reason the validation function checkIfNotZero is being executed and the error message is being shown? what am i doing wrong here? how can i make the validation function to execute when the update (myDataProcessor.sendData()) button is clicked?
By default validator run against updated row immideatly without waiting of data sending. You can disable such behavior by comment next line
dhtmlxdataprocessor.js ,. line 115
dataProcessor.prototype.setUpdated = function(rowId,state,forceUpdate){
…
this.setRowTextBold(rowId);
///this.checkBeforeUpdate(rowId,this.autoUpdate||forceUpdate); << this line need to be commented
Commenting this line will not disable validation on sendData call