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.
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.
ReplyDeleteAnother 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.
Try adding new hidden column and setting hidedlgand hidden to true, viewable to false.
ReplyDeleteDocumentation link: http://www.trirand.com/jqgridwiki/doku.php?id=wiki:colmodel_options