数据表1.10响应式搜索展开以显示子行

时间:2016-09-23 08:42:31

标签: search children responsive datatables-1.10 expandable

我使用带有列控制子行的响应式扩展的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']
  });
});

1 个答案:

答案 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 }}

这当然会打开任何子行,无论过滤的值实际存在于隐藏列还是可见列中。