Skip to main content

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.


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

Post a Comment

Popular posts from this blog

Wildcards in a hosts file

I want to setup my local development machine so that any requests for *.local are redirected to localhost . The idea is that as I develop multiple sites, I can just add vhosts to Apache called site1.local , site2.local etc, and have them all resolve to localhost , while Apache serves a different site accordingly.