Tuesday, January 31, 2012

JqGrid - Simple Searching With Additional Field(s)


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.



thanks grant.

2 comments:

  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.

    ReplyDelete
  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

    ReplyDelete