如何使用列名搜索数据表?

时间:2020-01-21 12:04:04

标签: javascript jquery datatables

我试图基于两列在数据表中搜索和过滤数据。 以下是我用于搜索和重绘数据表的代码。 (http://live.datatables.net/hapijuri/1/edit

$(document).ready( function () {
  var table = $('#example').DataTable({
    "columns": [  
      { title: 'title0', name: 'name0'},
      { title: 'title1', name: 'name1'},
      { title: 'title2', name: 'name2'},
      { title: 'title3', name: 'name3'},
      { title: 'title4', name: 'name4'},
      { title: 'title5', name: 'name5'},
    ]
  });
  table.column(1).search('Software Engineer')
      .column(0).search('Bradley Greer').draw();
} );

此代码的问题在于它适用于列号(或索引),而不适用于列名,但是我有要搜索的列名。

有什么方法可以根据列名而不是数据表jquery中的索引进行搜索吗?

编辑:提供其他详细信息,以确保我能够很好地陈述问题。 因此,我在UI上显示了一个数据表,并且正在使用该数据表数据在另一个选项卡中构建一个数据透视表(使用ivottable.js)。

在单击数据透视表中的数字时,我希望对UI上的数据表数据进行过滤,以便仅显示与在数据透视表中单击的数字相关的行。

我正在从数据透视表获取与该数字相对应的列名称和值。我只需要在数据表中搜索那些列值,并相应地显示过滤器数据表即可。

正如我共享的示例链接中指出的那样,我能够基于列索引搜索数据,并且同样反映在UI上。 我要寻找的是基于列名而不是列值进行搜索。

2 个答案:

答案 0 :(得分:1)

为防止从表中搜索列,您必须添加searchable:false。默认情况下,searchable & orderable的值为true

var table = $('#example').DataTable({
    "columns": [  
        { title: 'title0', name: 'name0', "searchable": true},
        { title: 'title1', name: 'name1'},
        { title: 'title2', name: 'name2'},
        { title: 'title3', name: 'name3'},
        { title: 'title4', name: 'name4'},
        { title: 'title5', name: 'name5'},
    ]      
});

除非您进行服务器端数据处理,否则无需添加以下代码。

 table.column(1).search('Software Engineer')
     .column(0).search('Bradley Greer').draw();

答案 1 :(得分:1)

使用列名搜索数据表

var table = $('#datatable-name').DataTable();

table.column('columnname:name').search("keyword").draw();