我正在使用内联编辑,想要调用jqgrid.saveRow
(即使没有任何更改)。如果数据未更改,则不得调用服务器进行更新。
如果在内联编辑期间没有更改行中的数据,如何跳过向服务器发送数据?
答案 0 :(得分:3)
jqGrid发出内部jQuery.ajax
请求以将数据发送到服务器。您可以使用ajaxRowOptions
选项对jQuery.ajax
使用的选项进行其他自定义。例如,您可以定义beforeSend
回调(有关详细信息,请参阅jQuery.ajax
的{{3}})。在发送数据之前,回调将被称为。重要的是,可以通过从回调中返回false
来取消ajax请求。 the documentation提供了简单的代码,演示了如何定义beforeSend
回调。
要在编辑期间验证数据是否已更改,您可以使用内部jqGrid选项savedRow
(.getGridParam("savedRow")
获取数据)。该选项包含行的数组,因为jqGrid允许同时为多个字符串调用editRow
。 savedRow
数组的每个项目都有其他属性id
,您可以使用它来查找当前保存的项目。
因此,您可以将准备发送到服务器的数据与savedRow
中保存的数据进行比较。您可以在beforeSend
回调中执行此操作。如果您发现数据未更改,则回调可以返回false
以跳过将数据发送到服务器。