Perpustakaan untuk tabel administratif yang dapat dibangun sendiri, berdasarkan data masukannya. Mendukung penomoran halaman sisi klien dan server; pencarian sisi klien dan server; tampilan filter khusus; menu otomatis untuk menyembunyikan kolom dan dukungan untuk alat khusus. Fitur ekspor sisi klien ke: format csv, json, xml, Excel xlsx (menggunakan plugin).
Demo berikut tersedia online:
Perhatikan bagaimana filter secara otomatis dipertahankan saat halaman disegarkan. Misalnya, menggunakan fitur pencarian atau mengubah halaman di salah satu demo HTML kaya, lalu menekan F5. Saat mencari, perhatikan bagaimana algoritma pencarian sisi klien juga mengurutkan hasil berdasarkan relevansi (jumlah kemunculan, urutan properti yang menghasilkan kecocokan).
NB: semua demo ini adalah tabel tetap : tabel yang semua informasinya dimuat di memori, diberi halaman dan difilter di sisi klien. Untuk melihat contoh tabel yang diberi nomor halaman menggunakan permintaan AJAX (di sisi server), lihat dokumentasi khusus dan server pengembangan yang disediakan dalam repositori.
Perpustakaan KingTable dapat diinstal menggunakan npm.
npm install kingtable
Modul kemudian dapat diimpor menggunakan sintaks CommonJS:
var KingTable = require ( "kingtable" )
var KingTableUtils = require ( "kingtable/utils" )
Atau sintaks impor ES6:
import KingTable from "kingtable"
import KingTableUtils from "kingtable/utils"
Pustaka KingTable dapat digunakan dengan mengunduh dan menggunakan file distribusi, di folder dist
.
< script src =" kingtable.js " > </ script >
Versi perpustakaan KingTable sebelumnya tersedia di: https://github.com/RobertoPrevato/jQuery-KingTable.
Lihat halaman wiki. Daftar lengkap opsi yang memungkinkan tersedia di dalam halaman Opsi khusus.
Berikut ini adalah tabel yang mencantumkan fitur-fitur yang ditambahkan ke KingTable 2.0.
Fitur | Keterangan |
---|---|
Kode sumber ES6 | Kode sumber ES6, perpustakaan dipindahkan ke ES5 untuk didistribusikan. |
Kode sumber yang diuji unit | Kode sumber terintegrasi dengan tugas Gulp, Karma, Jasmine untuk pengujian unit. Lebih dari 300 tes - masih terus berkembang! |
Ketergantungan dihapus | Menghapus ketergantungan dari jQuery, Lodash, I.js, R.js. |
Pengecualian yang ditingkatkan | Pengecualian yang dimunculkan mencakup tautan ke wiki GitHub dengan instruksi terperinci. |
Peningkatan logika untuk mengambil data | Memungkinkan untuk memilih antara metode HTTP GET (memfilter dalam string kueri) atau metode HTTP POST (memfilter sebagai data JSON POST). |
cache LRU | Mekanisme caching yang paling sedikit digunakan baru-baru ini untuk menyimpan n halaman terakhir dengan filter, untuk mengurangi jumlah permintaan AJAX. |
Logika pengambilan data tabel | Memungkinkan untuk menentukan fungsi yang mengembalikan data yang diperlukan untuk merender tabel itu sendiri (misalnya kamus untuk tampilan filter khusus) |
Caching filter | Filter untuk setiap tabel di-cache menggunakan penyimpanan sisi klien (dapat dikonfigurasi), sehingga filter tersebut tetap dipertahankan saat halaman disegarkan. |
Penyortiran CS yang ditingkatkan | String yang dapat diurutkan seperti angka (seperti "25%", "25,40 EUR", "217°") secara otomatis diuraikan sebagai angka saat mengurutkan. |
Penyortiran CS yang ditingkatkan | Penyortiran sisi klien berdasarkan beberapa properti. |
Pencarian CS yang ditingkatkan | Fitur pencarian sisi klien telah ditingkatkan: pencarian berfungsi dalam representasi string tanggal dan angka yang bergantung pada budaya serta string berformat lainnya. |
Peningkatan dukungan untuk penanganan acara | Penangan peristiwa khusus menerima item yang diklik secara otomatis sebagai parameter, jika berlaku. |
Peningkatan dukungan untuk tombol khusus | Sekarang dimungkinkan untuk mengonfigurasi bidang tambahan (seperti tombol) yang akan dirender untuk setiap item. |
Peningkatan dukungan untuk media lain | Dukungan untuk aplikasi konsol NodeJS dan rendering tabel HTML untuk badan email yang dikirim menggunakan NodeJS. |
Perpustakaan KingTable mengimplementasikan dua mode kerja:
Dan mendukung koleksi yang dioptimalkan dan sederhana. Lihat halaman wiki khusus untuk informasi lebih lanjut.
Tabel tetap menampilkan koleksi yang tidak memerlukan penomoran halaman sisi server, namun masih dapat memanfaatkan penomoran halaman sisi klien. Saat mengerjakan aplikasi, biasanya terjadi berurusan dengan koleksi yang tidak dimaksudkan untuk bertambah seiring waktu, dan ukurannya kecil. Misalnya, tabel kategori di situs e-commerce untuk menjual pakaian, atau tabel peran pengguna di sebagian besar aplikasi. Dalam kasus ini, masuk akal untuk mengembalikan seluruh koleksi ke klien. Ada dua cara untuk mendefinisikan KingTable tetap:
var table = new KingTable ( {
data : [ { ... } , { ... } , { ... } ]
} ) ;
//or... code the server side to return an array of items (instead of an object describing a paginated set of results)
var table = new KingTable ( {
element : document . getElementById ( "my-table" ) ,
url : "/api/categories"
} ) ;
Tabel tetap melakukan pencarian dan penomoran halaman di sisi klien.
Tabel normal adalah tabel yang menampilkan koleksi yang memerlukan penomoran halaman di sisi server, karena tabel tersebut dimaksudkan untuk bertambah seiring waktu. Hal ini berlaku dalam banyak kasus, misalnya tabel produk dan pelanggan di situs web e-commerce.
var table = new KingTable ( {
url : "/api/profiles"
} ) ;
Saat menerima respon AJAX, tabel normal mengharapkan untuk menerima struktur berikut:
{
subset : [ array ] , // array of items that respect the given filters
total : [ number ] // the total count of items that respect the given filters; excluding the pagination: for example 13000
}
Pustaka KingTable menyertakan sejumlah fitur untuk meningkatkan kegunaan, baik untuk pengguna akhir maupun pemrogram yang menggunakan pustaka:
sessionStorage
yang dapat dikonfigurasi, localStorage
atau objek yang kompatibel) dan dipertahankan setelah penyegaran halaman - filter dikumpulkan berdasarkan URL dan, jika memungkinkan, id tabelUntuk informasi lebih lanjut, lihat halaman wiki khusus.
Untuk informasi selengkapnya, lihat halaman wiki khusus. Pustaka KingTable menyertakan logika untuk mengimplementasikan lokalisasi sisi klien, yang digunakan untuk menampilkan nama tombol yang tepat (refresh, nomor halaman, hasil per halaman, dll.).
Silakan merujuk ke halaman wiki khusus, untuk instruksi tentang cara berintegrasi dengan proyek Anda dan dengan kode sisi server.