我正在使用 DataTables,我正在尝试在带有下拉列表的表中搜索结果。但是我需要搜索两个特定的列,而不是搜索一列。
以下语法适用于单列,但我如何处理多列?
var table = $('#example1').DataTable();
$("#filter").on('change', function() {
table.column([4]).search($(this).val()).draw();
});
我试过这样做,但是当我使用这段代码时,它只搜索第一列中的结果,例如第 4 列。并忽略其余部分。
table.column([4,5]).search($(this).val()).draw();
正确的方法是什么?
原文由 Kasun Wijesekara 发布,翻译遵循 CC BY-SA 4.0 许可协议
让我们在这里总结一下所有事情。它也会帮助其他人。
您可以按如下方式实现:
它将在 4 列(4 是列的索引)上执行搜索,之后它将根据提供的过滤值从 5 列中过滤数据,最后绘制表格。
要记住的一件事是 Filter 应用于两列,因此两列都必须包含匹配的数据。
这是它的小提琴
这可以通过使用 fnMultiFilter 来实现,因为它的文档解释说:
此插件为 DataTables 添加了在单个调用中设置多个列过滤条件的能力(如果使用服务器端处理则特别有用)。与列 sName 参数结合使用,只需传入一个对象,其中键/值对是您要搜索的列,以及您要搜索的值。