JqGrid - Simple Searching With Additional Field(s)

2019-02-20 12:24发布

问题:

I am using jqgrid and have simple searching enabled. I am wondering if there is a way to add an additional item in the select list of fields that does not exist as a column in the grid. I would call it something like 'Any Field' so I could search on any of the fields and then handle that outcome server side.

回答1:

The suggestion of Bethrezen with the usage of one hidden column is one way which you can use. You should only don't forget to use searchhidden: true searchoptions.

Another way which I can suggest you can see on the demo:

In the demo I add the

var defaultFilters = {
        "groupOp": "AND",
        "rules": [
            { "field": "All", "op": "cn", "data": ""}
        ]
    };
...
$('#list').jqGrid('navGrid', '#pager', {add: false, edit: false, del: false},
    {}, {}, {},
    {
        multipleSearch: true,
        overlay: 0,
        onInitializeSearch: function ($form) {
            $form.jqFilter('addFilter', defaultFilters);
        },
        afterRedraw: function (p) {
            if (p.columns.length === $("#list")[0].p.colModel.length) {
                p.columns.push({
                    name: 'All',
                    label: 'Any Field',
                    searchoptions: {},
                    searchrules: {},
                    searchtype: 'string',
                    inputtype: 'text'
                });
            }
            //$(this).find('.delete-rule:first').hide();
        }
    });

In the demo I extended the p.columns parameter of jqFilter method with and additional "pseudo column" 'Any Field'. It's just the idea which you can I hope adopt to your exact requirements.



回答2:

Try adding new hidden column and setting hidedlgand hidden to true, viewable to false.

Documentation link: http://www.trirand.com/jqgridwiki/doku.php?id=wiki:colmodel_options