我试图基于两列在数据表中搜索和过滤数据。 以下是我用于搜索和重绘数据表的代码。 (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上。 我要寻找的是基于列名而不是列值进行搜索。
答案 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();