我的应用程序一遍又一遍地填充一个 jqGrid,其中包含用户可能进行的许多不同查询的结果;查询采用以下形式:给我标题,documentCategory,hits,documentType 用于文档包含单词“x”的所有文档。用户可能会一个接一个地进行许多这样的(ajax)查询:发出查询。读取数据库返回的标题列表。做一些工作。再做一个这样的查询。等等等等。
我创建了一次网格,当 ajax 数据库调用返回一些数据时,网格首先被取消填充,然后重新填充,如下所示:
$("#titles-table").jqGrid('clearGridData');
.
.
. // loop through the data returned by the ajax database call
for (var i = 0 ...
{
row = ...
$("#titles-table").jqGrid('addRowData',i, row);
}
但现在在 3.7 版中,网格有一个新的“数据”属性,据说比addRowData更快。演示此新数据属性的示例显示了在实例化网格时填充的网格(定义colModel等)。但是假设网格已经存在并且将通过clearGridData调用来取消填充,那么有没有办法设置网格的数据属性来重新填充网格?类似于 clearGridData 的东西,像这样:
$(#titles-table).jqGrid('setGridData', data);
我对填充网格的更快方法感兴趣。当我的网格有 75 行时,Firefox 会显示“脚本耗时过长”消息,但 Chrome、Opera 和 Safari 会立即通过这个数据量。