使用clientArray(clientside)进行编辑时,分页对jqgrid的getChangedCells方法有什么影响?

我正在使用带有clientArray选项的jqgrid进行编辑;我的网格正在使用分页; jqgrid getChangedCells方法是否会返回正确更改的行,即使多次更改页面并且服务器中的数据可能已更改? – 例如,如果我可以从页面返回,那么现在将出现在我的网格中的新行可用; 不会有rowId冲突 – 新的rowIds将指向与新数据可用之前的行不同的行? 我想我总是可以通过自动增量主键来订购我的服务器数据?

今天发现了实验; paging(服务器端)jqgrid清除getChangedCells的结果; 我必须创建一个实用程序函数来存储getChangedCells数组,以便它在分页中保持不变; 我这样做,所以我可以单独提交所有的更改在jqgrid选项中我有类似的东西:

('#grid').jqgrid({ .... cellEdit:true, cellSubmit:'clientArray', colModel: [ {...,editable:true, dataInit:function(el){ el.autocomplete({...}); }...} ... ], afterSaveCell:function(){ $.retainChangesOnPaging(); } .... 

});

并在实用程序retainChangesOnPaging我有类似的东西:

 (function(){ var retainedChanges; retainedChanges = new Array(); $.retainChangesOnPaging = function(){ var changedCells = ('#grid').jqGrid('getChangedCells'); // loop over changedCells array, removing duplicates if you want to... return retainedChanges.push(/* this is inside the loop; push current value to array*/); .... } $.getRetainedChanges = function(){ return retainedChanges; } })(jQuery); 

然后当我准备好向服务器提交所有更改时,我调用$ .getRetainedChanges另一个问题:我使用retainChangesOnPaging的方式是否正确? 虽然代码有效,但似乎有些错误 – 我可以以任何方式改进它吗? 我的关闭好吗?