grid v1.5

I am trying to implement a cancel edit functionality on my grid which means i can roll back my changes made to a row by clicking cancel button on the page. Inorder to achieve this iam trying to put all the column values of the selected row inside an array so that i can place them back if the user clicks cancel.



mygrid.attachEvent(“onRowSelect”,function()

{

var id = mygrid.getSelectedId();

var z=myDataProcessor.obj.getUserData(id,"!nativeeditor_status");

var colCount =mygrid.getColumnCount();

if(z !=“inserted” || z !=“deleted”)

{

for(var i=0;i<colCount ;i++)

{

rowData[i] = mygrid.cells(id,i).getValue();}}});





But the problem is that the rowData array has the modified values instead of the old values. Why is this happening?

The onRowSelect event generated for each click inside selected row, so if you have selected row, changed value in cell and clicked again to edit another cell in same row - attached code will be called again, and store updated values instead of original one - basically , you need to add one more check.

mygrid.attachEvent(“onRowSelect”,function(id){

    var z=this.getUserData(id,"!nativeeditor_status");

    if(z !=“inserted” || z !=“deleted”) return;
    if (rowData && rowData._id==id) return;// prevent second call against the same row

    rowData=[];
    mygrid.forEachCell(id,function(cell){
        rowData.push(cell.getValue());
     });
     rowData._id=id;//store id of related row
});