Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery JqGrid筛选规则-我们可以基于数组进行筛选吗?_Jquery_Jqgrid - Fatal编程技术网

Jquery JqGrid筛选规则-我们可以基于数组进行筛选吗?

Jquery JqGrid筛选规则-我们可以基于数组进行筛选吗?,jquery,jqgrid,Jquery,Jqgrid,我有一个数组,需要从中过滤JQGrid var filter = ["a","b","c","d",...255]; var postData = $('jqGridName').jqGrid('getGridParam', 'postData'); jQuery.extend(postData, { filters: { groupOp: "AND", rules: [ { field: "Types", op: "ne", da

我有一个数组,需要从中过滤JQGrid

var filter = ["a","b","c","d",...255];
var postData = $('jqGridName').jqGrid('getGridParam', 'postData');
jQuery.extend(postData,
{
    filters: {
        groupOp: "AND",
        rules: [
            { field: "Types", op: "ne", data: filter[0] },
            { field: "Types", op: "ne", data: filter[1] },
            { field: "Types", op: "ne", data: filter[2] },
            { field: "Types", op: "ne", data: filter[3] },
            .
            .
            .
            { field: "Types", op: "ne", data: filter[255] },
        ]
    },
});
数组中的项数不是固定的。但它可以包含的最大值是255。 那么,我是否需要写到255(如上所述),或者是否有任何简单的方法来实现相同的目标

问候,


Varun R

我必须永久性地考虑自定义排序操作的问题,我承诺(在评论中)在将来的jqGrid版本中实现该操作。最后,我现在实现了这个特性。我在下面介绍它

用途和用途。两者都使用常见的jqGrid设置,允许对本地数据进行自定义搜索操作

首先,需要定义新的自定义搜索操作。我在demo in操作中使用了它,它允许定义一个具有多个值的规则。我在“tax”列中使用自定义操作。它允许过滤被分号(
)分割的多个值。相应的代码如下所示

$(“#网格”).jqGrid({
colModel:[
{名称:“税”,标签:“税”,宽度:100,模板:“编号”,
//sopt包含自定义操作“nIn”
搜索选项:{sopt:[“nIn”、“eq”、“ne”、“lt”、“le”、“gt”、“ge”、“in”、“ni”]},
...
],
客户操作:{
//CustomSortoOperations的属性定义了新的操作
//在postData.filters.rules项中用作操作权限
尼恩:{
操作数:“nIN”,//将显示在搜索工具栏中,例如
文本:“数值输入”、//将显示在搜索工具栏的搜索对话框或操作菜单中
标题:“键入以分号(;)分隔的多个值以从指定值中搜索一个值”,
buildQueryValue:函数(otions){
//如果启用了搜索的showQuery:true选项,则可以调用可选回调
返回otions.cmName+“”+otions.operand+”(“+otions.searchValue.split(“;”).join(“;”+”);
},
funcName:“myCustomIn”//回调函数实现比较操作
}
},
myCustomIn:功能(选项){
//在对自定义操作“nIn”进行筛选时,将调用该方法
//回调的所有参数都是only options参数的属性。
//它具有以下属性:
//item-数据项(与mydata数组中的类似)
//cmName—需要根据其进行筛选的字段的名称
//searchValue—在搜索工具栏的输入字段中键入的筛选值
var fieldData=options.item[options.cmName],
数据=$.map(
options.searchValue.split(“;”),
功能(val){
返回浮点值(val);
}
);
返回$.inArray(parseFloat(fieldData),data)>=0;
}
});
因此,操作
“nIn”
将被放置在
过滤器的
op
属性中。规则
的方式与标准
“en”
操作相同。jqGrid在搜索工具栏中将操作显示为
“nIN”
(请参阅
操作数:“nIN”
属性的值)。属性
tooltip
定义在操作上显示的工具提示

你可以像下面的动画gif一样过滤结果

在过滤过程中,jqGrid调用
myCustomIn
回调。因此,如何实现相应的操作是完全自由的

同样,也可以使用高级搜索:


更新:更详细地描述了新功能。

我必须永久性地考虑自定义排序操作的问题,我向您承诺(在评论中)将在jqGrid的未来版本中实现该操作。最后,我现在实现了这个特性。我在下面介绍它

用途和用途。两者都使用常见的jqGrid设置,允许对本地数据进行自定义搜索操作

首先,需要定义新的自定义搜索操作。我在demo in操作中使用了它,它允许定义一个具有多个值的规则。我在“tax”列中使用自定义操作。它允许过滤被分号(
)分割的多个值。相应的代码如下所示

$(“#网格”).jqGrid({
colModel:[
{名称:“税”,标签:“税”,宽度:100,模板:“编号”,
//sopt包含自定义操作“nIn”
搜索选项:{sopt:[“nIn”、“eq”、“ne”、“lt”、“le”、“gt”、“ge”、“in”、“ni”]},
...
],
客户操作:{
//CustomSortoOperations的属性定义了新的操作
//在postData.filters.rules项中用作操作权限
尼恩:{
操作数:“nIN”,//将显示在搜索工具栏中,例如
文本:“数值输入”、//将显示在搜索工具栏的搜索对话框或操作菜单中
标题:“键入以分号(;)分隔的多个值以从指定值中搜索一个值”,
buildQueryValue:函数(otions){
//如果启用了搜索的showQuery:true选项,则可以调用可选回调
返回otions.cmName+“”+otions.operand+”(“+otions.searchValue.split(“;”).join(“;”+”);
},
funcName:“myCustomIn”//回调函数实现比较操作
}
},
myCustomIn:功能(选项){
//在对自定义操作“nIn”进行筛选时,将调用该方法
//回调的所有参数都是only options参数的属性。
//它具有以下属性:
//item-数据项(与myda中的数据项非常相似