我使用带有列控制子行的响应式扩展的Datatables 1.10。 https://datatables.net/extensions/responsive/examples/child-rows/column-control.html
如何配置搜索以匹配扩展/可见的子行?
例如,在此页面上,如果我搜索" 5407"过滤表以显示父行,但只能在子行中找到匹配项。如何将搜索结果展开以显示匹配的子行?
https://jsfiddle.net/lbriquet/Ldgutob0/
$(document).ready(function() {
$('#example').DataTable({
responsive: {
details: {
type: 'column'
}
},
columnDefs: [{
className: 'control',
orderable: false,
targets: 0
}],
order: [1, 'asc']
});
});
答案 0 :(得分:0)
您可以在search.dt
处理程序中搜索后自动打开所有子行:
$('#example').on('search.dt', function() {
table
.rows({ filter: "applied" })
.every(function(rowIdx, tableLoop, rowLoop) {
$('td:first-child', this.node()).trigger('click.dtr');
})
})
更新小提琴 - > https://jsfiddle.net/Ldgutob0/2/ 每次处理过滤器/搜索时,所有可见行都会打开其子行。我通过调查代码注意到.dtr
后缀,它只是一个命名空间我认为是“dataTables responsive”的缩写,很好知道是否有自定义点击处理程序你不想意外地参与{{1 }}
这当然会打开任何子行,无论过滤的值实际存在于隐藏列还是可见列中。