jqGrid client-side searching

天大地大妈咪最大 提交于 2019-11-26 05:58:41

问题


I would like to manually apply searching to my jqGrid via JavaScript. I have tried a guide here, but can\'t seem to get it completely working. In the grid setup I have a column with name \'error_column\' that I would like to perform a search on looking for the string \'Test\'.

Here is what I have so far:

var filter = { \"field\": \"error_column\", \'oper\': \'eq\', \"data\": \'Test\' };
$(\"Grid2\").jqGrid(\'setGridParam\', { search: true, postData: { filters: filter} })
$(\"Grid2\").trigger(\'reloadGrid\');

When I click the button that this is bound to, nothing happens and it causes no errors.

EDIT Here is the code for initializing the grid:

jQuery(\"#Grid2\").jqGrid({
    datatype: \"local\",
    height: 250,
    colNames: [\'NewSubscriberID\', \'Conflicting Subscriber ID\', \'Error Field\', \'Error Message\'],
    colModel: [
        { name: \'new_subscriber_id\', index: \'new_subscriber_id\', width: 120},
        { name: \'conflicting_subscriber_id\', index: \'conflicting_subscriber_id\', width: 170},
        { name: \'error_column\', index: \'error_column\', width: 90, sorttype: \"text\", search: true},
        { name: \'error_type\', index: \'error_type\', width: 145}
    ],
    loadonce: true
    });

I bind the data to the grid using a local array.


回答1:


You should implement search for single field in a little another way:

var grid = jQuery("#Grid2");
var postdata = grid.jqGrid('getGridParam','postData');
jQuery.extend (postdata,
               {filters:'',
                searchField: 'error_column',
                searchOper: 'eq',
                searchString: 'Test'});
grid.jqGrid('setGridParam', { search: true, postData: postdata });
grid.trigger("reloadGrid",[{page:1}]);

You can see live example here.

UPDATED: You use loadonce: true and datatype: "local" together. The value loadonce: true will be ignored in case of datatype: "local". If you do get the data from the server and use datatype: "json" or datatype: "xml", then loadonce: true will work. If you want that the searching (filtering) will be done not locally but on the server instead you should reset datatype to 'json' or 'xml' as additional option of 'setGridParam'.



来源:https://stackoverflow.com/questions/4492963/jqgrid-client-side-searching

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!