过去2天我一直坚持这个问题。很多谷歌搜索,但无法找到确切的答案。
以下是JQGrid定义
$("#tblresults").jqGrid({
datastr: data,
datatype: 'jsonstring',
height: 230,
colNames: colNames,
colModel: colModel,
rowNum: -1,
viewrecords: true,
loadComplete: function() {
ChangeSize('#tblresults', 70);
}
});
这是过滤器定义
$("#tblresults").filterToolbar({ searchOnEnter: true, stringResult: true, defaultSearch: "cn", groupOp: "AND" });
我从一个简单的getJSON调用中获取数据。但是,当我尝试使用过滤器时,没有任何作用。 我调试了代码并发现jqgrid在内部调用reloadgrid,这使数据消失。
任何人都可以告诉我如何在客户端完全过滤jqgrid。 我使用的是v3.8,我了解到jqgrid v3.7已经有了这个客户端过滤逻辑。
先谢谢
答案 0 :(得分:3)
你有数据首先你不应该使用-1作为rowNum
的值。而不是像rowNum:1000
那样使用任何可靠的值。更好的方法是使用本地数据分页。在这种情况下,您应该设置示例rowNum:10, rowList:[5,10,20,100]
。
如果从服务器每ajax调用获得jqGrid的输入参数colNames
,colModel
和data
参数,则还应考虑使用data
参数而不是{ {1}}。如果datastr
应从datatype
更改为'jsonstring'
。
其他常见参数如'local'
和gridview:true
对您也很有用。第一个(height:'100%'
)只是改善性能而没有任何缺点,第二个(gridview:true
)将遵循选择没有垂直滚动条的最佳网格高度。它可以很好地与本地数据分页相结合(像height:'100%'
这样的参数)。
答案 1 :(得分:0)
添加这些参数,您的工具栏搜索应该有效。当我使用jqgrid时,我也遇到了类似的问题。
search:true,
loadonce:true,