DataTable 响应式显示某些列

Posted

技术标签:

【中文标题】DataTable 响应式显示某些列【英文标题】:DataTable responsive display certain columns 【发布时间】:2017-09-02 13:44:20 【问题描述】:

我正在使用 DataTables 和 responsive 并在尝试仅显示某些列时遇到问题。

表格布局是这样的:

我只需要显示'Column 1', 'Column3', 'Column 7', 'Column 8', 'Column 10'并隐藏其他人(这些应该通过每行末尾的展开控件显示)。

JS:

  $( 'table' ).DataTable( 
      order: [ [ 0, "asc" ] ],
        responsive: 
            details: 
                type: 'column',
                target: 'tr'
            
        ,
        columnDefs: [ 
            className: 'control',
            orderable: false,
            targets: -1
         ]
     );

这是JSFiddle。有什么建议!

【问题讨论】:

【参考方案1】:

要在响应式数据表中显示特定列,只需在表的th 中添加Class Controls,如下:

<table class="table table-hover table-striped">
  <thead>
    <tr>
      <th class="all">Column 1</th>
      <th class="none">Column 2</th>
      <th class="all">Column 3</th>
      <th class="none">Column 4</th>
      <th class="none">Column 5</th>
      <th class="none">Column 6</th>
      <th class="all">Column 7</th>
      <th class="all">Column 8</th>
      <th class="none">Column 9</th>
      <th class="all">Column 10</th>
      <th class="none">Column 11</th>
      <th class="all"></th>
    </tr>
  </thead>

class "all":无论屏幕大小如何,始终显示列。

class "none":不显示为列,而是显示在子行中。

Source


Here 是它的工作演示。

【讨论】:

【参考方案2】:

看来你需要this:

列的优先级也可以由列标题单元格上的数据优先级属性定义(例如名字)。

【讨论】:

以上是关于DataTable 响应式显示某些列的主要内容,如果未能解决你的问题,请参考以下文章

响应式数据表不适用于 Bootstrap 4.3.1

使用 DT 包隐藏响应式数据表中的某些列

响应式列重置

“响应式”数据表容器DT :: datatable中使用widgetframe的数据表

无法使 dataTable 响应式扩展正常工作

Jquery Datatable 到响应式数据表