仅在数据更改时保存jqgrid.saveRow

时间:2013-12-17 12:57:25

标签: javascript jqgrid

我正在使用内联编辑,想要调用jqgrid.saveRow(即使没有任何更改)。如果数据未更改,则不得调用服务器进行更新。

如果在内联编辑期间没有更改行中的数据,如何跳过向服务器发送数据?

1 个答案:

答案 0 :(得分:3)

jqGrid发出内部jQuery.ajax请求以将数据发送到服务器。您可以使用ajaxRowOptions选项对jQuery.ajax使用的选项进行其他自定义。例如,您可以定义beforeSend回调(有关详细信息,请参阅jQuery.ajax的{​​{3}})。在发送数据之前,回调将被称为。重要的是,可以通过从回调中返回false来取消ajax请求。 the documentation提供了简单的代码,演示了如何定义beforeSend回调。

要在编辑期间验证数据是否已更改,您可以使用内部jqGrid选项savedRow.getGridParam("savedRow")获取数据)。该选项包含行的数组,因为jqGrid允许同时为多个字符串调用editRowsavedRow数组的每个项目都有其他属性id,您可以使用它来查找当前保存的项目。

因此,您可以将准备发送到服务器的数据与savedRow中保存的数据进行比较。您可以在beforeSend回调中执行此操作。如果您发现数据未更改,则回调可以返回false以跳过将数据发送到服务器。