Everything you do is absolutely true. I would recommend that you continue to use the same configuration: a toolbar to quickly, intuitively and easily search / filter data and search to advance search to create more complex filters.
In the current version of jqGrid, the pre-search module uses postData.filters to load the source filters. The toolbar filter on the other side does not read data from postData.filters and simply sets it.
If you want to keep separate filters for the toolbar and continue the search, I can suggest the following trick. You can open the advanced filter right after mesh initialization. The adnavce search module reads postData.filters first time the dialog is opened, only if the default recreateFilter: false and loadDefaults: true . After opening, you can immediately close the search dialog box, which will be disabled and will not be deleted.
var grid = $("#list"), prmSearch = {multipleSearch:true,overlay:false}; grid.jqGrid({ // ... jqgrid parameters }); grid.jqGrid('navGrid','#pager', {add:false,edit:false,del:false,search:true,refresh:true}, {},{},{},prmSearch); // open the advance searching dialog grid.searchGrid(prmSearch); // close the advance searching dialog $("#fbox_"+grid[0].id+" div.ui-closer").trigger("click"); grid.jqGrid('filterToolbar',{defaultSearch:'cn',stringResult:true});
Thus, you can use both the toolbar and the advanced search using separate filters. Due to the use of the overlay:false parameter in the search dialog, you can even reset the mesh filters in the toolbar search without closing the preliminary search dialog.
You can see the corresponding demo here .
UPDATED : Another demo uses toggleToolbar to hide the filter toolbar if the advanced dialog is open and shown if the advanced dialog is closed.
UPDATED 2 : In another answer, you will find how to remove the last line of the search dialog (with "Inv No") which are not part of the search rules from postData.filters . The new version of the demo is here .