DataTables - 使用单个下拉列表在多列中搜索

新手上路,请多包涵

我正在使用 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 许可协议

阅读 588
2 个回答

让我们在这里总结一下所有事情。它也会帮助其他人。

您可以按如下方式实现:

 table.column(4).search(this.value).column(5).search(this.val‌​ue).draw();

它将在 4 列(4 是列的索引)上执行搜索,之后它将根据提供的过滤值从 5 列中过滤数据,最后绘制表格。

要记住的一件事是 Filter 应用于两列,因此两列都必须包含匹配的数据。

这是它的小提琴


这可以通过使用 fnMultiFilter 来实现,因为它的文档解释说:

此插件为 DataTables 添加了在单个调用中设置多个列过滤条件的能力(如果使用服务器端处理则特别有用)。与列 sName 参数结合使用,只需传入一个对象,其中键/值对是您要搜索的列,以及您要搜索的值。

原文由 mmushtaq 发布,翻译遵循 CC BY-SA 3.0 许可协议

使用 columns() 代替 column():

 var table = $('#example1').DataTable();
$("#filter").on('change', function() {
    table.columns([4,5]).search($(this).val()).draw();
});

原文由 Govind Samrow 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题