近期在使用JQgrid时遇到一个问题,管理人员常常需要搜索一批数据然后进行修改。但按照jQgrid的reload方法会重新刷新整个表格,之后又需要再次搜索进行修改。
在查看了jQgrid的官方方法后发现,在数据类型为json时,当我们edit数据后,会自动更新被修改行的内容(单行刷新)。而笔者由于加载数据时设置了loadonce为true,只会从服务器请求一次数据然后设置数据类型为local。故而只能通过reload来刷新。
那问题简单了起来。我们只需要在afterSubmit:function()
函数中判断操作成功的位置加入如下两行内容:
jQuery("#table_list").jqGrid('setGridParam',{datatype:'json'});
jQuery("#table_list").jqGrid('setGridParam',{datatype:'local'});
并屏蔽提交后自动重载:
reloadAfterSubmit:false,
先设置数据类型为json然后恢复为local。这样便实现了在"loadonce"下在搜索结果内的单行刷新。