jqGrid客户端search
我想通过JavaScript手动应用search到我的jqGrid。 我在这里尝试了一个指南,但似乎无法完全工作。 在网格设置中,我有一个名称为“error_column”的列,我想执行search以查找string“Test”。
这是我到目前为止:
var filter = { "field": "error_column", 'oper': 'eq', "data": 'Test' }; $("Grid2").jqGrid('setGridParam', { search: true, postData: { filters: filter} }) $("Grid2").trigger('reloadGrid');
当我点击这个绑定的button时,什么都不会发生,并且不会导致错误。
编辑这里是初始化网格的代码:
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 });
我使用本地数组将数据绑定到网格。
您应该以另一种方式实现单个字段的search:
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}]);
你可以在这里看到现场的例子。
更新 :你使用loadonce: true
和datatype: "local"
在一起。 在datatype: "local"
情况下, loadonce: true
值将被忽略。 如果确实从服务器获取数据并使用datatype: "json"
或datatype: "xml"
,则loadonce: true
将起作用。 如果您希望search(过滤)不是在本地,而是在服务器上完成,您应该将datatype
重置为'json'
或'xml'
作为'setGridParam'
附加选项。