在jqGrid中使用子网格上的外部参数触发搜索

时间:2012-02-09 17:44:17

标签: jqgrid

我有一个页面使用jqGrid和网格作为子网格。我的页面上还有jQuery UI滑块控件。当用户更改滑块时,我想触发对子网格的字段搜索,该子网格对应于滑块后面的值。

我一直在查看文档以尝试找到执行此操作的最佳方法,但查找this文档非常令人困惑。它似乎也是为了再次调用服务器,因为我使用的是loadonce: true,所以我不想这样做。

我已经能够通过遍历子网格行并在不符合条件的行上调用hide()来实现解决方法,但这不符合分页。在子网格上执行此类外部触发搜索的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

我通过对jqGrid源文件中的triggerToolbar方法进行逆向工程找到了一个解决方案(模式'[id^=grid_GR][id$=_t]'与我的子网格ID匹配):

function external_subgrid_search() {
    var ruleGroup = '{"groupOp":"AND","rules":[{"field":"Inv","op":"bw","data":"25"}]}';
    $('[id^=grid_GR][id$=_t]').each(function () {
        var p = $(this).getGridParam('postData');
        p.filters = ruleGroup;
        $(this).setGridParam({ postData: p, search: true }).trigger("reloadGrid", [{ page: 1}]);            
    });
}

这就像我在“Inv”字段的搜索工具栏中输入“25”一样。请记住,这是非常剥离。它会忽略您可能已定义的任何beforeSearch或afterSearch函数,并假定您拥有本地数据。但是,希望它可以作为其他任何试图做类似事情的人的起点。