如何使DataTables过滤器跨行工作

时间:2016-03-29 13:16:54

标签: datatables

我们说我有一个像

这样的数据集
$('table').DataTable({
    data: [
        ['First set'],
        ['Starting another set'],
        ['  Some stuff'],
        ['  More stuff'],
        ['  Last row in the set'],
        ['Last set']
    ],
  columns: [
  null
  ],
  ordering: false
 });

https://jsfiddle.net/Lg8sjt2h/2/

如何按期限'最后'进行搜索?匹配集合中的所有行(缩进)?自定义过滤器功能可以获得单行,并且无法处理所有数据集。

我无法将每个组合在一行中,因为它会使行高不均匀并破坏DataTables滚动条(并且虚拟滚动是必要的)。

1 个答案:

答案 0 :(得分:1)

我强烈建议实现子行(请参阅this example),而不是使用缩进作为表示层次结构的唯一方法。

但是,如果这不是一个选项,您可以使用隐藏列的技巧,该列可以搜索但不可见。您需要预处理数据并将父项和所有子行中的数据连接到第二列数据。

这可能不是最佳解决方案,但可行。

<强> HTML:

<table width="100%">
    <thead><tr><th></th><th></th></tr></thead>
</table>

<强> JavaScript的:

$('table').DataTable({
    data: [
        ['First set', 'First set'],
        ['Starting another set', 'Starting another set Some stuff More stuff Last row in the set'],
        ['  Some stuff', 'Starting another set  Some stuff More stuff Last row in the set'],
        ['  More stuff', 'Starting another set  Some stuff More stuff Last row in the set'],
        ['  Last row in the set', 'Starting another set Some stuff More stuff Last row in the set'],
        ['Last set', 'Last set']
    ],
    columns: [
        null, 
        { visible: false }
    ],
    ordering: false
});

请参阅this jsFiddle以获取代码和演示。

尝试搜索stuffsetlast