Jquery JqGrid筛选规则-我们可以基于数组进行筛选吗?
我有一个数组,需要从中过滤JQGridJquery 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
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中的数据项非常相似