我正在使用 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();
正确的方法是什么?
最佳答案
让我们在这里总结一下所有的事情。它也会帮助其他人。
您可以通过以下方式实现:
table.column(4).search(this.value).column(5).search(this.value).draw();
它将在 4 列(4 是列的索引)上执行搜索,之后它将根据提供的过滤值从 5 列中过滤数据,最后绘制表格。
要记住的一件事是,过滤器应用于两列,因此两列都必须包含匹配的数据。
这可以通过使用 fnMultiFilter 来实现正如它的文档解释的那样:
此插件为 DataTables 添加了在单个调用中设置多个列过滤条件的能力(如果使用服务器端处理,则特别有用)。与列 sName 参数结合使用,只需传入一个对象,其中键/值对是您要搜索的列,以及您要搜索的值。
关于javascript - DataTables - 使用单个下拉列表在多列中搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43384010/