Saya menggunakan plugin jQuery DataTables untuk mengurutkan bidang tabel. Pertanyaan saya adalah: bagaimana cara menonaktifkan penyortiran untuk kolom tertentu? Saya sudah mencoba dengan kode berikut, tetapi tidak berhasil:
"aoColumns": [
{ "bSearchable": false },
null
]
Saya juga sudah mencoba kode berikut:
"aoColumnDefs": [
{
"bSearchable": false,
"aTargets": [ 1 ]
}
]
tetapi ini masih tidak menghasilkan hasil yang diinginkan.
javascript
jquery
sorting
datatables
Usman
sumber
sumber
Jawaban:
Inilah yang Anda cari:
sumber
[-1]
, maka[1]
,[2]
, dll? Apa-1
artinya? Bukankah pengindeksan untuk kolom dimulai pada1
untuk tabel data?-1
adalah penghitungan indeks dari akhir tabel. (-1
adalah kolom terakhir dari tabel)-dari Contoh DataTables - data HTML5 * atribut - opsi tabel
Sehingga Anda dapat menggunakan
data-orderable="false"
dith
kolom Anda tidak ingin menjadi diurutkan. Misalnya, kolom kedua "Avatar" pada tabel di bawah ini tidak akan diurutkan:Lihat contoh yang berfungsi di https://jsfiddle.net/jhfrench/6yxvxt7L/ .
sumber
Untuk membuat penyortiran kolom pertama dinonaktifkan, coba dengan kode di bawah ini di jatah datatables. Nol merupakan pengaktifan penyortiran di sini.
Nonaktifkan Penyortiran pada Kolom di jQuery Datatables
sumber
Menggunakan Datatables 1.9.4 Saya telah menonaktifkan penyortiran untuk kolom pertama dengan kode ini:
EDIT:
Anda dapat menonaktifkan bahkan dengan menggunakan
no-sort
kelas pada Anda<th>
,dan gunakan kode inisialisasi ini:
EDIT 2
Dalam contoh ini saya menggunakan Datables dengan Bootstrap, mengikuti posting blog lama. Sekarang ada satu tautan dengan materi yang diperbarui tentang styling Datatables dengan bootstrap .
sumber
Apa yang saya gunakan hanyalah menambahkan atribut khusus di thead td dan mengontrol penyortiran dengan memeriksa nilai attr secara otomatis.
Jadi kode HTML akan seperti itu
Dan JavaScript untuk menginisialisasi datatables akan (secara dinamis akan mendapatkan informasi pengurutan dari tabel itu sendiri;)
sumber
data-bSortable
bukanbSortable
.bSortable
bukan atribut HTML yang valid.columnDefs
sekarang menerima kelas. Saya akan mengatakan ini adalah metode yang disukai jika Anda ingin menentukan kolom untuk dinonaktifkan di markup Anda:Kemudian, di JS Anda:
sumber
Inilah yang dapat Anda gunakan untuk menonaktifkan kolom tertentu yang akan dinonaktifkan:
Jadi yang harus Anda lakukan adalah menambahkan "orderable": false ke kolom yang tidak ingin Anda sortir.
sumber
sumber
"bSortable": false, "aTargets": [0]
Untuk menonaktifkan penyortiran kolom tunggal, coba contoh ini:
Untuk Beberapa kolom coba contoh ini: Anda hanya perlu menambahkan nomor kolom. Secara default mulai dari 0
Di sini hanya
Column 3
berfungsisumber
Pada 1.10.5 , cukup sertakan
di kolomDefs dan targetkan kolom Anda dengan
Tabel harus seperti:
sumber
Jika Anda mengatur
orderable
properti kolom FIRST ke false, Anda juga harus mengaturorder
kolom default jika tidak, karena kolom pertama adalah kolom pemesanan default. Contoh di bawah ini menonaktifkan pengurutan pada kolom pertama tetapi menetapkan kolom kedua sebagai kolom urutan default (ingat indeks dataTables berbasis nol).sumber
Berikut
0
adalah indeks kolom, jika Anda ingin beberapa kolom tidak diurutkan, sebutkan nilai indeks kolom yang dipisahkan olehcomma(,)
sumber
Untuk memperbarui jawaban Bhavish (yang menurut saya adalah untuk versi lama dari DataTables dan tidak berfungsi untuk saya). Saya pikir mereka mengubah nama atribut. Coba ini:
sumber
data-orderable
... lihat stackoverflow.com/a/32281113/1430996 .data-sortable
juga berfungsi, tetapi saya tidak dapat menemukan di mana itu didokumentasikan.Menggunakan kelas:
sumber
Ini berfungsi untuk saya untuk satu kolom
sumber
Jika Anda sudah harus menyembunyikan beberapa kolom, seperti saya menyembunyikan kolom nama belakang. Saya hanya harus menggabungkan fname, lname, Jadi saya membuat permintaan tetapi menyembunyikan kolom itu dari ujung depan. Modifikasi dalam Disable sorting pada situasi seperti ini adalah:
Perhatikan bahwa saya memiliki fungsi Menyembunyikan di sini
Lalu saya menggabungkannya menjadi
"aoColumnDefs"
sumber
Gunakan kode berikut untuk menonaktifkan pemesanan pada kolom pertama:
Untuk menonaktifkan pemesanan default, Anda juga dapat menggunakan:
sumber
Anda dapat mengarahkan menggunakan metode .notsortable () pada kolom
sumber
Ada dua cara, satu didefinisikan dalam html ketika Anda mendefinisikan header tabel
Cara lain menggunakan javascript, misalnya, Anda memiliki tabel
kemudian,
sumber
Anda juga dapat menggunakan indeks negatif seperti ini:
sumber
Kode akan terlihat seperti ini:
sumber
Inilah jawabannya!
targets
adalah nomor kolom, dimulai dari 0sumber
atur kelas "no-sort" di tabel lalu tambahkan css .no-sort {pointer-events: none! important; kursor: default! important; background-image: none! important; } dengan ini akan menyembunyikan panah dimutakhirkan dan mengacaukan acara di kepala.
sumber