jqGrid - 内联编辑 - 检测脏/更改的单元格

Nat*_*eff 14 jqgrid inline-editing

有一个使用jqgrid的getChangedCells方法来确定数据是否已更改的示例?

我在jqgrid的可下载演示中使用了getChangedCells,并且只能找到函数定义,而不是getChangedCells的示例用法.

我想要做的是保存用户点击另一行时所做的编辑.但是,如果行是脏的,我只想提交保存.

在此先感谢, - 国家

Ole*_*leg 5

行上没有安全脏标志.您可以使用以下事实:在行编辑开始时(在内联编辑模式的开头),方法editRoweditable="1"属性添加到网格行(<tr>元素).稍后方法saveRowrestoreRow将属性值更改为editable="0".因此,在内联编辑模式中至少一次的当前页面的行将具有该editable属性.如果表元素的id是"list",您可以找到已编辑的行

$("#list tr[editable]")
Run Code Online (Sandbox Code Playgroud)

集合的元素的id是行的rowid.

如果在网格中使用分页,则应该小心并在更改页面之前将编辑行的ID保存在当前页面上.该onPaging活动将帮助你在这里.

在我看来,做你需要的最好和最安全的方法是使用editRowsaveRow方法的aftersavefunc参数(可能你只使用editRow).在函数内部,您可以将修改后的行的id保存在数组/映射中.这将解决您的问题,并将安全工作.aftersavefunc

  • @diosney:在我的回答的第一句中,我写道:"行上没有安全的脏标志".如果你什么都没有,你可以使用`$("#list tr [editable]")`来减少你需要发送到服务器的行数.您可以看到明确未更改的行.就像我后来写的那样,您可以使用`aftersavefunc`来跟踪更改.它会安全工作. (2认同)