搜索不适用于 JQGrid 中的过滤器工具栏

Posted

技术标签:

【中文标题】搜索不适用于 JQGrid 中的过滤器工具栏【英文标题】:Search is not working with filter toolbar in JQGrid 【发布时间】:2011-07-29 00:10:48 【问题描述】:

我在稍后阶段将数据加载到 JQGrid 中而不是在创建网格时遇到问题。我正在使用过滤器工具栏进行搜索。

以下是我正在使用的代码:

创建网格

jQuery("#list").jqGrid( 数据类型:'本地', colNames:[我的 col 名称], colModel:[我的 col 模型], jsonReader: 根:“行”, 页:“页”, 总计:“总计”, //记录:“记录”, 重复项:假 , 身高:300, 观看记录:真实, 网格完成:this.onGridComplete, ondblClickRow: this.rowDblClick, onSelectRow:this.selectRow, 标题:假, loadtext: "加载中...", 可排序:真, altRows:是的, 加载一次:真, 行数:100, 寻呼机:'#pager', 根:“行”, 行列表:[100, 200, 300], 分页:真实, 忽略大小写:真 )

在后期加载数据

if(gridDataStr != "none") // gridDatStr 有数据 grid.initialize(); // 创建网格 var myjsongrid = JSON.parse(gridDataStr); grid.table[0].addJSONData(myjsongrid); grid.table.jqGrid('setGridParam',datatype:'json', data:myjsongrid).trigger('reloadGrid'); if (myjsongrid["rows"].length > 1) grid.table.filterToolbar( 字符串结果:真, 搜索输入:假 );

但是,如果我在使用 datatype:json 创建网格时加载相同的数据并使用一些有效的 url,则搜索效果很好。

有什么建议吗?

【问题讨论】:

【参考方案1】:

addJSONData 方法不能用于具有“本地”数据类型的 jqGrid。

您可以使用addRowData 和使用localReader 代替jsonReader 或设置setGridParam 方法的jqGrid 的data 参数,然后调用jQuery("#list")[0].refreshIndex()(参见here)并重新加载网格。

【讨论】:

感谢 Oleg,它正在使用 addRowData 和 localReader 但会导致性能问题。我的网格将运行多达 6000 条记录。 @Saleemuddin Mewati:您是在循环中插入记录还是在一次调用addRowData 中执行此操作?从性能的角度来看的方式是使用data参数。此外,我希望您使用本地分页(rowNum 值足够小,可以在显示器上显示页面的所有行,而不必使用垂直滚动)。

以上是关于搜索不适用于 JQGrid 中的过滤器工具栏的主要内容,如果未能解决你的问题,请参考以下文章

JQGrid filterToolbar搜索输入列合并

jqGrid 工具栏搜索仅适用于前 20 行。分页为 20,40,60

jqgrid可以在工具栏过滤字段中支持下拉菜单吗

如何使 jqgrid 仅在我们搜索时有效(显示数据)?

free-jqgrid中的日期“少但不空”自定义搜索

在每次重新访问页面时触发搜索 jqgrid 过滤器