如何操作 jqGrid 的搜索/过滤器?

2023-12-29

我有一个带有导航栏的 jqGridsearch: true and multipleSearch: true。我想在我的 UI 中添加一个按钮,自动向搜索添加附加规则。

我尝试直接操作过滤器的 postData,但以这种方式添加的值不会显示在搜索 UI 中。

我还尝试过使用 jQuery 直接访问搜索框,如下所示:

$('#fbox_list').searchFilter().add();
$('#fbox_list .sf .data input').each(function(index) {
    alert($(this).val());
});

但是,除了感觉很黑客之外,它只有在用户已经单击搜索按钮时才有效(fbox_list div 不是在加载时构建的)。

还有其他人处理过这样的问题吗?


为了后代的利益,这是我目前正在使用的黑客。网格的 ID 为list寻呼机的 ID 为pager:

jQuery(document).ready(function() {
    //Initialize grid.

    //Initialize the navigation bar (#pager)

    //Hack to force creation of the search grid.
    //The filter's ID is of the form #fbox_<gridId>
    jQuery('#pager .ui-icon-search').click();
    jQuery('#fbox_list').searchFilter().close();

    //Example button events for adding/clearing the filter.
    jQuery("#btnAddFilter").click(function() {
        //Adds a filter for the first column being equal to 'filterValue'.
        var postFilters = jQuery("#list").jqGrid('getGridParam', 'postData').filters;
        if (postFilters) {
            $('#fbox_list').searchFilter().add();
        }

        var colModel = jQuery("#list").jqGrid('getGridParam', 'colModel');
        //The index into the colModel array for the column we wish to filter.
        var colNum = 0;
        var col = colModel[colNum];

        $('#fbox_list .sf .fields select').last().val(col.index).change();
        $('#fbox_list .sf .data input').last().val('filterValue');

        $('#fbox_list .sf .ops select.field' + colNum).last().val('eq').change();

        $('#fbox_list').searchFilter().search();
    });

    jQuery("#btnClearFilter").click(function() {
        $('#fbox_list').searchFilter().reset();
    });
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何操作 jqGrid 的搜索/过滤器? 的相关文章