【发布时间】:2012-05-30 19:08:16
【问题描述】:
我正在将客户端搜索应用于没有搜索对话框的 jqGrid,但我需要使用自定义搜索功能或更聪明的搜索运算符执行搜索,其中一个基本上可以执行 $.inArray([searchString],[searchField])。
我的网格有datatype: 'json' 和loadonce: 'true' 并且不使用multisearch。我要搜索的相关列有colModel: [ {name: 'ancestorIds', hidden: true } ],它将包含一个像[1,2,26,42] 这样的ID 数组。
基于this answer,我正在从网格外的点击事件初始化单字段搜索,如下所示:
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]
...上面的代码选择每一行,但我只希望它返回前三行。
【问题讨论】:
标签: jquery search jqgrid client-side