DataTables设置默认排序列并设置不可排序的列

时间:2013-11-28 10:16:59

标签: javascript jquery datatables

一旦页面加载,是否可以将默认列设置为排序?我想对我网站上的不同表使用一个数据表调用。是否可以添加th类来实现此目的?

我还想在某些列上禁用排序,因为我正在寻找一个数据表调用来做所有事情,是否有一个类我可以添加到th会使它无法解决?

这是我所谓的dataTable脚本

if (jQuery().dataTable) {
    $('#table-list-items').dataTable({
        "fnDrawCallback" : function () {
        },
        "aLengthMenu": [
        [10, 15, 25, 50, 100, -1],
        [10, 15, 25, 50, 100, "All"]
        ],
        "iDisplayLength": 25,
        "oLanguage": {
            "sLengthMenu": "_MENU_ Records per page",
            "sInfo": "_START_ - _END_ of _TOTAL_",
            "sInfoEmpty": "0 - 0 of 0",
            "oPaginate": {
                "sPrevious": "Prev",
                "sNext": "Next"
            }
        },
        "aoColumnDefs": [{
            'bSortable': true,
            'aTargets': [0]
        }]
    });
}

5 个答案:

答案 0 :(得分:38)

是的,您可以使用aaSorting选项执行此操作,例如:

$('.table-asc0').dataTable({
  aaSorting: [[0, 'asc']]
});

按顺序升序第一列。

$('.table-asc1').dataTable({
  aaSorting: [[1, 'asc']]
});

对于DataTables 1.10aaSorting已被order取代。

$('.table-asc0').dataTable({
  order: [[0, 'asc']]
});

答案 1 :(得分:17)

SET INITIAL ORDER (DataTables 1.10)

使用order设置表格的初始顺序。

例如,按降序排序第二列:

$('#example').dataTable({
   "order": [[ 1, 'desc' ]]
});

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

禁用字段排序(DataTables 1.10)

使用columnDefsorderable禁用某些列的排序。

例如,要禁用第三列和第四列的排序:

$('#example').dataTable({
   "columnDefs": [
      { "targets": [2,3], "orderable": false }
  ]
});

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

设置初始订单并禁用同一列的分类(DataTables 1.10)

您可以合并order选项以设置表格的初始顺序,并orderable禁用对同一列的排序。

例如:

$('#example').dataTable({
   "order": [[ 0, 'desc' ]],
   "columnDefs": [
      { "targets": [0], "orderable": false }
  ]
});

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

答案 2 :(得分:6)

您可以通过表格HTML上的data-order数据属性执行此操作,这将为您提供逐个表格所需的灵活性,同时仍允许您使用单个调用来初始化您的dataTables:

<table className="table table-condensed table-striped" data-order="[[ 2, &quot;asc&quot; ]]" id="tableId">
    <thead>
        <tr>
          <th>Col1</th>
          <th>Col2</th>
          <th>Col3</th>
          <th>Col4</th>
          <th>Col5</th>
          <th>Col6</th>
        </tr>
    </thead>
    <tbody>
        <tr>
          <td>Val1</td>
          <td>Val2</td>
          <td>Val3</td>
          <td>Val4</td>
          <td>Val5</td>
          <td>Val6</td>
        </tr>
    </tbody>
</table>

答案 3 :(得分:0)

只需包含以下代码:

if (!preg_match_all("/(?![[:alnum:]]|@|-|_|\.)./",$email)) { .. }

参考:

https://datatables.net/examples/basic_init/table_sorting.html

答案 4 :(得分:0)

is corect and worked:

    $('#admin').DataTable({
        "aaSorting": [[3, 'desc']],
        "bPaginate": true,
        "bProcessing": true,
        "columns": [
            {'data' : 'request_code'},
            {'data' : 'name_receiver'},
            {'data' : 'name_area'},
            {'data' : 'created_at'},
            {'data' : 'state'},
            {'data' : 'city'},
            {'data' : 'history'},
        ],
        "ajax": "{{route('my.route.name')}}",
        dom: 'Bfrtip',
        buttons: ['copy', 'excel', 'print'],
    });