我正在将客户端搜索应用于没有搜索对话框的 jqGrid,但我需要使用自定义搜索功能或更聪明的搜索运算符执行搜索,其中一个基本上可以执行$.inArray([searchString],[searchField])
.
我的网格有datatype: 'json'
并且loadonce: 'true'
不使用multisearch
. 我要搜索的相关列有colModel: [ {name: 'ancestorIds', hidden: true } ]
,它将包含一个 id 数组,例如[1,2,26,42]
. 基于这个答案,我正在从网格外的单击事件初始化单个字段搜索,如下所示:
var selectedId = $('#selectedId').val();
var $grid = $('#grid');
var postdata = $grid.jqGrid('getGridParam','postData');
$.extend(postdata, {
filters: '',
searchField: 'ancestorIds',
searchOper: 'cn',
searchString: selectedId
});
$grid.jqGrid('setGridParam', { search: true, postData: postdata });
$grid.trigger("reloadGrid", [{page: 1}]);
这很好用,除非selectedId
是 2,否则使用searchOper: 'cn'
将错误地返回包含 26 或 42 的行。我的问题是,如何修改搜索以仅返回 selectedId 是数组实际值的行?
编辑:
给定几个具有以下值的示例行,ancestorIds
值为selectedId
2...
[1,2,26,42]
[2]
[2,42]
[42]
[22]
...上面的代码是选择每一行,但我只希望它返回前三行。