排除特定类别的搜索过滤条件的数据表

时间:2018-11-26 09:40:56

标签: jquery datatables

我有一个HTML表,实际上我的网站上有很多表。 因此,我创建了一个名为datatable的类,它满足了大多数通用表的需求。 对于导出(例如PDF和Excel),我设法排除了类别为ignore的列。

我想动态排除带有ignore类的列。 我想用ignore类设置更多列,并避免过滤器经过这些列。 不一定会有buttona元素,因此请避免暗示我只是排除这些元素。

在特定情况下,我有一个名称Edit Valvasor,并且我希望过滤器在过滤器中键入"Edit"时查找行,而忽略带有Edit buttons的列。

示例可在此处找到:http://jsfiddle.net/t1h9ugqa/

Javascript:

$(document).ready(function() {
  $('.datatable').DataTable({
    lengthMenu: [
      [15, 25, 50, -1],
      [15, 25, 50, "All"]
    ],
    pageLength: 25,
    dom: '<"html5buttons"B>lTfgitp',
    aaSorting: [],
    buttons: [{
        extend: 'copy',
        exportOptions: {
          columns: ':not(.ignore)',
        }
      },
      {
        extend: 'csv',
        exportOptions: {
          columns: ':not(.ignore)',
        }
      },
      {
        extend: 'excel',
        exportOptions: {
          columns: ':not(.ignore)',
        }
      },
      {
        extend: 'pdf',
        exportOptions: {
          columns: ':not(.ignore)',
        }
      },
      {
        extend: 'print',
        customize: function(win) {
          $(win.document.body).addClass('white-bg');
          $(win.document.body).css('font-size', '10px');

          $(win.document.body).find('table')
            .addClass('compact')
            .css('font-size', 'inherit');
        }
      }
    ]
  });
});

HTML:

<table class="datatable">
  <thead>
    <tr>
      <th>ID</th>
      <th>Name</th>
      <th>Sum</th>
      <th class="ignore"></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1</td>
      <td>Edit Valvasor</td>
      <td>1034</td>
      <td>
        <a class="btn btn-primary" href="#">Edit</a>
      </td>
    </tr>
    <tr>
      <td>2</td>
      <td>Samuel Grixis</td>
      <td>655</td>
      <td>
        <a class="btn btn-primary" href="#">Edit</a>
      </td>
    </tr>
    <tr>
      <td>3</td>
      <td>Martin Kempinsky</td>
      <td>153</td>
      <td>
        <a class="btn btn-primary" href="#">Edit</a>
      </td>
    </tr>
  </tbody>
</table>

1 个答案:

答案 0 :(得分:0)

您可以添加:

  columnDefs: [
        { searchable: false, targets: 3 }
    ],

示例中的代码如下:// target是列数

  $('.datatable').DataTable({
lengthMenu: [
  [15, 25, 50, -1],
  [15, 25, 50, "All"]
],columnDefs: [
        { searchable: false, targets: 3 }
    ],
pageLength: 25,
dom: '<"html5buttons"B>lTfgitp',
aaSorting: [],
buttons: [{
    extend: 'copy',
    exportOptions: {
      columns: ':not(.ignore)',
    }