如何显示DataTable JQuery的长度菜单?

时间:2019-06-12 13:12:31

标签: javascript jquery datatables

如何显示JQuery DataTable的长度菜单?激活导出(COPY,EXCEL,PDF)后,它消失。我已经添加了lengthMenu,但是没有显示下拉列表。这就是我所做的:

$(document).ready(function() {
    var table = $('#example').DataTable( {
        lengthChange: false,
        buttons: [ 'copy', 'excel', 'pdf' ],
        responsive: true,
        'columnDefs': [ {
                'targets': [6], /* column index */
                'orderable': false, /* true or false */
                'lengthMenu': [[10, 25, 50, -1], [10, 25, 50, "All"]]
        }]
    } );
    table.buttons().container().appendTo( '#example_wrapper .col-md-6:eq(0)' );
} );

我正在通过CDN使用jquery 3.3.1和datatables 1.10.19。

3 个答案:

答案 0 :(得分:0)

您应该添加dom

  

dom:'Bflrtip'

read more about datatables dom

lengthMenu 的位置应固定

lengthChange 应该为true

$(document).ready(function() {
    var table = $('#example').DataTable( {
        lengthChange: true,
        dom: 'Bflrtip', 
        buttons: [ 'copy', 'excel', 'pdf' ],
        responsive: true,
        'columnDefs': [ {
                'targets': [6], /* column index */
                'orderable': false, /* true or false */
        }],
        'lengthMenu': [[10, 25, 50, -1], [10, 25, 50, "All"]]
    } );
    table.buttons().container().appendTo( '#example_wrapper .col-md-6:eq(0)' );
} );

答案 1 :(得分:0)

尝试添加dom之类的dom: 'Blfrtip'参数。 另请参见documentation

$(document).ready(function() {
    var table = $('#example').DataTable( {
        lengthChange: true,
        buttons: [ 'copy', 'excel', 'pdf' ],
        responsive: true,
        dom: 'Blfrtip',
        columnDefs: [ {
                targets: [6], /* column index */
                orderable: false, /* true or false */
                lengthMenu: [[10, 25, 50, -1], [10, 25, 50, "All"]]
        }]
    } );
    table.buttons.container.appendTo( '#example_wrapper .col-md-6:eq(0)' );
} );
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="//cdn.datatables.net/1.10.19/js/jquery.dataTables.min.js"></script>
<link href="//cdn.datatables.net/1.10.19/css/jquery.dataTables.min.css" rel="stylesheet"/>

<table id="example">
  <thead>
    <tr>
      <th>Example</th>
      <th>Example</th>
      <th>Example</th>
      <th>Example</th>
      <th>Example</th>
      <th>Example</th>
      <th>Example</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Example</td>
      <td>Example</td>
      <td>Example</td>
      <td>Example</td>
      <td>Example</td>
      <td>Example</td>
      <td>Example</td>
    </tr>
  </tbody>
</table>
  

答案 2 :(得分:0)

尝试添加如下所示的dom设置:

$(document).ready(function() {
    var table = $('#example').DataTable( {
        lengthChange: false,
        buttons: [ 'copy', 'excel', 'pdf' ],
        responsive: true,
        dom: 'lfrtip',
        'columnDefs': [ {
                'targets': [6], /* column index */
                'orderable': false, /* true or false */
                'lengthMenu': [[10, 25, 50, -1], [10, 25, 50, "All"]]
        }]
    } );
    table.buttons().container().appendTo( '#example_wrapper .col-md-6:eq(0)' );
} );

有关更多信息,请参见关于此forum discussion

的答案