Jadual Data
Menyusun maklumat ke dalam baris dan lajur untuk kemudahan bacaan. Ia menampung pelbagai jenis data, termasuk teks, nombor, kod, panggilan untuk tindakan dan pautan, membolehkan penyampaian dan perbandingan yang cekap.
Name | Age | Position | Status | Action |
---|---|---|---|---|
John Doe | 25 | Software Engineer | Success | |
Jane Doe | 30 | Product Manager | Success | |
Alice | 22 | Designer | Success | |
Bob 'With A Very Long Middle Name' Smith | 35 | Software Engineer | Success | |
Charlie | 28 | Data Scientist | Success |
Penggunaan
Contoh
Data & Lajur
Komponen DataTable
terutamanya ditakrifkan oleh 2 prop penting: data
dan columns
.
data
menerima array objek, di mana setiap objek mewakili baris dalam jadual.columns
menerima arrayColumnDef
, di mana setiap objek mewakili lajur dalam jadual.
Name | Age | Position | Status | Action |
---|---|---|---|---|
John Doe | 25 | Software Engineer | Success | |
Jane Doe | 30 | Product Manager | Success | |
Alice | 22 | Designer | Success | |
Bob 'With A Very Long Middle Name' Smith | 35 | Software Engineer | Success | |
Charlie | 28 | Data Scientist | Success |
Nota
DataTable
menggunakan TanStack/table,
sebuah komponen jadual yang berkemampuan, di balik tabir. Untuk mengetahui
lebih lanjut mengenai ColumnDef dan API yang tersedia, sila rujuk kepada
dokumentasi di
sini.
Mengembangkan Lajur
Anda boleh mengembangkan saiz sel dalam lajur dengan menetapkan sifat expandable
kepada true
dalam objek meta
definisi lajur.
Untuk menunjukkan ini, kami telah menetapkan sifat expandable
kepada true
untuk lajur Nama
dan Jawatan
. Anda boleh mengklik ikon pengembangan untuk melihat kandungan penuh sel.
Name | Age | Position | Status | Action |
---|---|---|---|---|
John Doe | 25 | Software Engineer | Success | |
Jane Doe | 30 | Product Manager | Success | |
Alice | 22 | Designer | Success | |
Bob 'With A Very Long Middle Name' Smith | 35 | Software Engineer | Success | |
Charlie | 28 | Data Scientist | Success |
Tooltip pada Tajuk Lajur
Anda boleh menambah tooltip pada tajuk lajur dengan menetapkan sifat tooltip
dalam objek meta
definisi lajur.
Untuk menunjukkan ini, kami telah menetapkan sifat tooltip
kepada lajur Umur
dan Jawatan
. Arahkan kursor ke tajuk lajur untuk melihat tooltip.
Name | Age | Position | Status | Action |
---|---|---|---|---|
John Doe | 25 | Software Engineer | Success | |
Jane Doe | 30 | Product Manager | Success | |
Alice | 22 | Designer | Success | |
Bob 'With A Very Long Middle Name' Smith | 35 | Software Engineer | Success | |
Charlie | 28 | Data Scientist | Success |
Pengisihan
Anda boleh mengisih data dalam jadual dengan menetapkan sifat sortable
kepada true
dalam objek meta
definisi lajur.
Untuk menunjukkan ini, kami telah menetapkan sifat sortable
kepada lajur Jawatan
. Klik ikon pengisihan untuk menukar pengisihan yang tersedia.
Name | Age | Position | Status | Action |
---|---|---|---|---|
John Doe | 25 | Software Engineer | Success | |
Jane Doe | 30 | Product Manager | Success | |
Alice | 22 | Designer | Success | |
Bob 'With A Very Long Middle Name' Smith | 35 | Software Engineer | Success | |
Charlie | 28 | Data Scientist | Success |
Skeleton Loading
Anda boleh mengaktifkan prop loading
untuk mencetuskan keadaan pemuatan rangka untuk jadual.
Name | Age | Position | Status | Action |
---|---|---|---|---|
Jadual Kosong
Menghantar array kosong kepada prop data
akan memaparkan keadaan kosong untuk jadual.
Name | Age | Position | Status | Action |
---|---|---|---|---|
No data available |
Pemilihan Baris
Aktifkan mod pemilihan dengan menghantar prop selection
kepada komponen DataTable
. Prop selection
menerima objek dengan sifat berikut:
mode
: Jenis pemilihan. Boleh sama adacheckbox
atauradio
.onSelectionChange
: Fungsi panggilan balik yang dicetuskan apabila pemilihan berubah.rowId
: Pengenal unik untuk setiap baris dalam jadual.
Checkbox
selection-column | Name | Age | Position | Status | Action |
---|---|---|---|---|---|
John Doe | 25 | Software Engineer | Success | ||
Jane Doe | 30 | Product Manager | Success | ||
Alice | 22 | Designer | Success | ||
Bob 'With A Very Long Middle Name' Smith | 35 | Software Engineer | Success | ||
Charlie | 28 | Data Scientist | Success |
Radio
selection-column | Name | Age | Position | Status | Action |
---|---|---|---|---|---|
John Doe | 25 | Software Engineer | Success | ||
Jane Doe | 30 | Product Manager | Success | ||
Alice | 22 | Designer | Success | ||
Bob 'With A Very Long Middle Name' Smith | 35 | Software Engineer | Success | ||
Charlie | 28 | Data Scientist | Success |
Tajuk Berkumpulan
Anda boleh mengumpulkan lajur bersama dengan menetapkan sifat columns
kepada array objek ColumnGroupDef
. Setiap objek ColumnGroupDef
mewakili kumpulan lajur dalam jadual.
Berikut adalah contoh jadual dengan lajur berkumpulan:
Employee | Application | |||
---|---|---|---|---|
Name | Age | Position | Status | Action |
John Doe | 25 | Software Engineer | Success | |
Jane Doe | 30 | Product Manager | Success | |
Alice | 22 | Designer | Success | |
Bob 'With A Very Long Middle Name' Smith | 35 | Software Engineer | Success | |
Charlie | 28 | Data Scientist | Success |
Tajuk Melekat
Secara lalai, tajuk jadual adalah melekat, tetapi ia tidak pernah terwujud kerana jadual dalam contoh sebelumnya tidak mempunyai ketinggian tetap.
Untuk menunjukkan tajuk melekat, mari tetapkan ketinggian tetap untuk jadual. Hanya hantar prop className
kepada komponen DataTable
dengan kelas max-h-[300px]
.
Employee | Application | |||
---|---|---|---|---|
Name | Age | Position | Status | Action |
John Doe | 25 | Software Engineer | Success | |
Jane Doe | 30 | Product Manager | Success | |
Alice | 22 | Designer | Success | |
Bob 'With A Very Long Middle Name' Smith | 35 | Software Engineer | Success | |
Charlie | 28 | Data Scientist | Success |
Baris Bersarang
DataTable
juga mampu menyarangkan baris. Untuk mengaktifkan ciri ini, keperluan berikut mesti dipenuhi:
data
: Mengandungi objek array bersarang dengan kunci yang sepadan dengan sifatid_by
dalam objeknest
. (cth.children
)columns
: Lajur yang bertanggungjawab untuk mengembangkan & meruntuhkan harus menghantarCell.Expand
dalam sifatcell
.nest
: Prop objek yang mengandungi sifat berikut:id_by
: Kunci yang sepadan dengan objek array bersarang dalam sifatdata
.
Name | Age | Position | Status | Action |
---|---|---|---|---|
John Doe | 25 | Software Engineer | Success | |
Jane Doe | 30 | Product Manager | Success | |
Alice | 22 | Designer | Success | |
Bob | 35 | Software Engineer | Success | |
Charlie | 28 | Data Scientist | Success |
Lajur Tersangkut
Anda boleh menyangkut lajur ke kiri atau kanan jadual dengan menetapkan sifat pin
. Sifat pin
menerima objek dengan sifat berikut:
left
: Array ID lajur untuk disangkut ke kiri.right
: Array ID lajur untuk disangkut ke kanan.
Name | Age | Position | Status | Action |
---|---|---|---|---|
John Doe | 25 | Software Engineer | Success | |
Jane Doe | 30 | Product Manager | Success | |
Alice | 22 | Designer | Success | |
Bob 'With A Very Long Middle Name' Smith | 35 | Software Engineer | Success | |
Charlie | 28 | Data Scientist | Success |
Kaki Jadual
Anda boleh menambah kaki per lajur dengan menetapkan footer
dalam objek ColumnDef definisi lajur. Berikut adalah contoh jadual dengan kaki:
Name | Age | Position | Status | Action |
---|---|---|---|---|
John Doe | 25 | Software Engineer | Success | |
Jane Doe | 30 | Product Manager | Success | |
Alice | 22 | Designer | Success | |
Bob 'With A Very Long Middle Name' Smith | 35 | Software Engineer | Success | |
Charlie | 28 | Data Scientist | Success | |
No. of Employees: 5 |
Props
DataTable
Prop | Type | Default |
---|---|---|
columns | ColumnDef | - |
data | Array<T = {}> | - |
nest | { id_by: string } | - |
pin | { left: Array<string>, right: Array<string> } | - |
DataTable ColumnDef
Prop | Type | Default |
---|---|---|
id | string | - |
accessorKey | string | - |
accessorFn | (row) => any | - |
header | string | (context) => ReactNode | - |
footer | string | (context) => ReactNode | - |
size | number | - |
cell | (context) => ReactNode | - |
meta.expandable | boolean | - |
meta.sortable | boolean | - |
meta.tooltip | ReactNode | - |