如何在jqGrid中排队reloadGrid请求?或者如何在加载时禁用GET?

时间:2012-04-09 16:02:02

标签: jqgrid

如果我在GET上加载或重新加载jqGrid需要一段时间来处理,然后在调用第一个进程时对$("#myJqGrid").trigger("reloadGrid");进行后续调用,那么第二个调用永远不会发出GET请求。有没有办法让我们排队或取消它们?或处理此问题的任何其他想法?不希望将用户与一堆排队请求混淆,他们认为他们正在响应他们刚刚发出的请求,但这是第一个请求的结果。

如果有一个干净的方法来禁止jqGrid在初始加载时进行GET,我认为这对我来说不是一个问题。

1 个答案:

答案 0 :(得分:1)

最初阻止加载jqGrid的最简单方法是在初始化时使用datatype: 'local'。如果您确实需要使用服务器中的数据填充网格,则应首先将datatype更改为'json''xml' setGridParam,然后触发reloadGrid }:

$("#gridId").jqGrid('setGridParam', {datatype: 'json'}).trigger('reloadGrid');

jqGrid具有方式来排队Ajax请求。如果您确实需要发出许多连续的Ajax请求,则应在loadComplete内进行下一个请求。例如,您可以创建一个请求数组,在loadComplete中测试数组是否为空。如果它不是空的,您可以在.trigger('reloadGrid')回调中调用setTimeout并调用数组的shift方法。

在大多数情况下,您实际上并不需要实现Ajax队列。例如,请参阅the answer作为示例。