查看 jqGrid 的源代码(source),您可以看到 gridComplete 仅在 grid.base 的一行上被调用。
1725: if($.isFunction(ts.p.gridComplete)) {ts.p.gridComplete.call(ts);}
这条线来自函数updatePager
。
您可以loadComplete
在populate
函数中找到(第 1757 行)。与 不同gridComplete
的是,它传递了一个额外的参数。两个回调都接收对 的引用this
,但loadComplete
也接收从服务器返回的数据(或在本地传入):
1858: case "xmlstring":
if(lcf) {ts.p.loadComplete.call(ts,dstr);}
1869: case "jsonstring":
if(lcf) {ts.p.loadComplete.call(ts,dstr);}
1881:
case "local":
case "clientside":
if(lc) { lc.call(ts,req); }
问题是,函数populate
和updatePager
经常串联发生,所以你看到在排序和分页时,两个回调都被调用了。再次,不同之处在于loadComplete
传递了一个额外的参数。
可能有一些我还没有遇到过的细微差别......并且可能存在一个被调用而另一个没有被调用的情况,但我注意到在排序和分页时,两者都被调用。