JQGrid refreshIndex()方法,用于本地数据不清除以前的索引数组

时间:2014-10-03 20:34:57

标签: javascript jqgrid

我有本地数据删除功能:

$.each(rowids, function() {  // - delete selected rows
                $grid.delRowData(this);
            });

我注意到在这次调用之后,检索了_index:

var xref = $grid.jqGrid('getGridParam', '_index');

_index仍包含已删除的行。

我查看了JQGrid源,删除了本地数据后,调用了refreshIndex()。我注意到索引没有被删除,而是覆盖了现有的数组:

for (i = 0; i < datalen; i++) {
            val = $.jgrid.getAccessor(ts.p.data[i], idname);
            if (val === undefined) { val = String(i + 1); }
            ts.p._index[val] = i;
        }

我在上面的循环之前添加了以下内容:

ts.p._index = [];

这似乎可以解决我的问题,这会导致问题吗?

1 个答案:

答案 0 :(得分:1)

我认为你是对的。可以将delRowData的{​​{3}}更改为

delete $t.p._index[id];

并且应该添加一行

ts.p._index = [];

之前的the line与您的建议完全一致。

我认为您应该将相应的错误报告发布到the loop