web-dev-qa-db-ja.com

DataTablesデフォルトのソート列を設定し、ソート不可能な列を設定します

ページが読み込まれたら、デフォルトの列をソートするように設定することはできますか?サイト全体のさまざまなテーブルに1つのデータテーブル呼び出しを使用したい。これを達成するためにthクラスを追加することは可能ですか?

また、いくつかの列の並べ替えを無効にしたいのですが、すべてを実行するための1つのデータテーブル呼び出しを探しているので、ソートできないクラスに追加できますか?

これは、呼び出された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]
        }]
    });
}
25
Pierce McGeough

ええ、あなたはaaSortingオプションを使ってそれをすることができます:

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

最初の列を昇順で並べます。

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

DataTablesの場合1.10aaSortingorderに置き換えられました。

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

SET INITIAL ORDER(DataTables 1.10)

order を使用して、テーブルの初期順序を設定します。

たとえば、降順で2番目の列で並べ替えるには:

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

コードとデモについては this jsFiddle をご覧ください。


列の並べ替えを無効にする(DataTables 1.10)

columnDefs および orderable を使用して、特定の列でのソートを無効にします。

たとえば、3列目と4列目の並べ替えを無効にするには:

$('#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 をご覧ください。

20
Gyrocode.com

テーブル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>
6
lee_mcmullen

次のコードを含めるだけです。

    $(document).ready(function() {
        $('#tableID').DataTable( {
            "order": [[ 3, "desc" ]]
        } );
    } 
);

参照:

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

0
Akshay Pethani

正しく機能している:

    $('#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'],
    });
0
Dariush