我尝试使用相同的值在多列中搜索,默认情况下这些值存在于表中,如果我使用此代码在一列中搜索,它可以正常工作而没有任何问题:table.column(0).search('blabla\\s*$', true, false).draw()如果我尝试使用其他值搜索第二列,则可以正常工作:table.column(1).search('bla\\s*$', true, false).draw()因此,我尝试使用此代码搜索两列(我在 StackOverflow 和 Officiel DataTable 文档中找到了它)table.columns([0, 1]).search('bla\\s*$', true, false).draw()但它不起作用,所以,我分析它,我发现datatable搜索使用 AND 运算符,这意味着'bla'需要存在于两列,但我想使用 OR 运算符。我尝试创建我的自定义过滤器,但除了实现的繁重之外,它还有很多问题,是否有任何解决方案可以在数据表的搜索列上使用 OR 运算符?
1 回答
守候你守候我
TA贡献1802条经验 获得超10个赞
使用自定义插件 using $.fn.dataTable.ext.search,因为它只是一组函数,您可以根据需要使用该事实来激活和停用过滤器
myfilter = function(settings, data, dataIndex) {
var str1 = data[0]
var str2 = data[1]
if (str1.search(/bla\\s*$/g) != -1 || str2.search(/bla\\s*$/g) != -1) {
return true;
}
return false;
});
$.fn.dataTable.ext.search.push(myfilter)
删除您只需执行的过滤器
$.fn.dataTable.ext.search.splice($.fn.dataTable.ext.search.indexOf(myfilter, 1));
添加回答
举报
0/150
提交
取消