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.
datamenerima array objek, di mana setiap objek mewakili baris dalam jadual.columnsmenerima 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 adacheckboxatauradio.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_bydalam objeknest. (cth.children)columns: Lajur yang bertanggungjawab untuk mengembangkan & meruntuhkan harus menghantarCell.Expanddalam 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 | - |