Apakah ada cara untuk menonaktifkan penyortiran awal untuk jquery DataTables?

231

Saya menggunakan plugin jquery DataTables . Dari dokumentasi mereka:

Jika penyortiran diaktifkan, maka DataTables akan melakukan penyortiran pass pertama pada inisialisasi. Anda bisa menentukan kolom mana yang dilakukan sort, dan arah sortir, dengan variabel ini. Array aaSorting harus berisi array untuk setiap kolom yang akan diurutkan awalnya berisi indeks kolom dan string arah ('asc' atau 'desc').

Apakah mungkin penyortiran diaktifkan tetapi menonaktifkan penyortiran pass pertama ini pada inisialisasi? Saat ini saya sedang melakukan sisi server sortir awal dan perlu fungsi sortir tetapi tidak perlu fungsi sortir awal ini.

smoak
sumber

Jawaban:

566

Yah saya menemukan jawaban set "aaSorting" ke array kosong:

$(document).ready( function() {
    $('#example').dataTable({
        /* Disable initial sort */
        "aaSorting": []
    });
})

Untuk versi yang lebih baru dari Datatables (> = 1.10) gunakan opsi pesanan :

$(document).ready( function() {
    $('#example').dataTable({
        /* No ordering applied by DataTables during initialisation */
        "order": []
    });
})
smoak
sumber
5
Jawaban ini sangat membantu tetapi perlu dicatat potensi kebingungan yang ditimbulkan. Jika col 0 adalah pra-disortir asc dan pengurutan awal ini dinonaktifkan maka ketika pengguna pertama kali mengklik header col 0 itu akan mengurutkan dalam urutan asc. Untuk pengguna ini sepertinya tidak ada yang terjadi karena mereka akan mengharapkan pesanan desc. Klik kedua akan mengurutkan desc. Untuk menyiasati ini Anda dapat mengatur asSorting: ['desc', 'asc']di aoColumnDefssehingga klik pertama adalah semacam desc.
Tomfumb
8
Untuk versi yang lebih baru, urutannya: []
Darren
@ Tomfumb Sebenarnya, ada GUI yang menunjukkan itu tidak diurutkan. Klik pertama akan menampilkan Sortir yang diaktifkan, meskipun item tidak berubah. Cukup bagi saya.
Nelson
2
Anda dapat mengaturnya pada level tabel juga -><table data-order="[]">
Howdy_McGee
Solusi ini tidak akan bekerja untuk saya tetapi <table data-order="[]">bekerja untuk saya.
Alper
101

Sesuai dokumen api terbaru:

$(document).ready(function() {
    $('#example').dataTable({
        "order": []
    });
});

Info lebih lanjut

Ravi Kadaboina
sumber
25

Coba ini:

$(document).ready( function () {
  $('#example').dataTable({
    "order": []
  });
});

ini akan menyelesaikan masalah Anda.

FennRussel
sumber
1

Dalam opsi datatable taruh ini:

$(document).ready( function() {
  $('#example').dataTable({
    "aaSorting": [[ 2, 'asc' ]], 
    //More options ...

   });
})

Inilah solusinya: "aaSorting": [[2, 'asc']],

2berarti tabel akan diurutkan berdasarkan kolom ketiga,
ascdalam urutan menaik.

luchopintado
sumber
12
Pertanyaannya adalah bagaimana "menonaktifkan penyortiran awal", bukan bagaimana menentukan urutan penyortiran lain. Jawaban ini lebih cocok untuk pertanyaan yang berbeda.
Hilang Coding