jqGrid change search filters on submit

后端 未结 1 1513
粉色の甜心
粉色の甜心 2020-12-10 21:27

I would like to alter the search filters after a user has submitted them. Normally jqGrid returns name in colmodel as the value for field, I would

相关标签:
1条回答
  • 2020-12-10 22:04

    If you use the searching toolbar you can use beforeSearch callback to modify the postData.filter. In case of Singe Field searching or Advanced Searching you can use onSearch.

    In the answer you can see how the postData.filter can be modified.

    UPDATED: You did something wrong in your tests. The only problem is that the current implementation of searching don't initialize this to the grid, but it's not explicitly documented somewhere.

    I created the demo for you which demonstrate that you do can modify the filter before relaoding of the grid will be started. If you would search in the grid for 'Client' equal to 300 the search request will be modified to 'amount' equal to 300 and you would see the results

    enter image description here

    The corresponding code is

    $('#list').jqGrid('navGrid', '#pager', {add: false, edit: false, del: false}, {}, {}, {},
        {
            multipleSearch: true,
            overlay: 0,
            onSearch: function () {
                var i, l, rules, rule, $grid = $('#list'),
                    postData = $grid.jqGrid('getGridParam', 'postData'),
                    filters = $.parseJSON(postData.filters);
    
                if (filters && typeof filters.rules !== 'undefined' && filters.rules.length > 0) {
                    rules = filters.rules;
                    for (i = 0; i < rules.length; i++) {
                        rule = rules[i];
                        if (rule.field === 'name') {
                            // make modifications only for the 'contains' operation
                            rule.field = 'amount';
                        }
                    }
                    postData.filters = JSON.stringify(filters);
                }
            }});
    
    0 讨论(0)
提交回复
热议问题