Impor

import-grid.tsx
import { NuiGrid, type NuiGridColumn, type NuiGridHandle } from '@needless-ui/react/grid';

NuiGrid

Data grid di atas tabel native.

NuiGrid: Properti
NamaTipeDefaultDeskripsi
rowsPropreadonly T[]Datanya. Pengeditan mengganti barisnya dan memanggil onRowsChange; rows berikutnya yang Anda teruskan menggantikan hasil edit.
onRowsChangeCallback(rows: readonly T[]) => voidDipanggil dengan baris-barisnya setelah setiap edit yang diterapkan.
columnsPropNuiGridColumn<T>[]Kolom-kolomnya, sebagai objek NuiGridColumn.
rowIdProp(row: T) => unknownrow.id ?? rowKunci baris, untuk pemilihan dan pelacakan.
labelPropstringNama aksesibel grid.
selectionProp'none' | 'single' | 'multiple''none'Apakah baris bisa dipilih, dan berapa banyak.
selected
defaultSelected
onSelectedChangeState
unknown[][]Kunci baris yang dipilih.
sort
defaultSort
onSortChangeState
NuiGridSort[][]Pengurutan, sebagai objek { column, direction }; yang pertama diutamakan.
filters
defaultFilters
onFiltersChangeState
Record<string, NuiGridFilter>{}Satu filter per id kolom: operator dan nilai.
search
defaultSearch
onSearchChangeState
string''Kata-kata yang semuanya harus ada dalam satu baris.
pageSize
defaultPageSize
onPageSizeChangeState
number0Baris per halaman, atau 0 untuk satu daftar yang bergulir.
page
defaultPage
onPageChangeState
number0Halaman yang ditampilkan, mulai dari 0.
pageSizesPropnumber[][10, 25, 50, 100]Pilihan ukuran halaman di paginator.
virtualPropboolean | 'auto''auto'Hanya merender baris yang terlihat: selalu, tidak pernah, atau auto jika lebih dari 100 baris tanpa paginasi.
heightPropstringPanjang CSS yang membatasi grid; isinya bergulir di dalam.
columnState
defaultColumnState
onColumnStateChangeState
NuiGridColumnState[][]Lebar, urutan, penyematan, dan visibilitas setiap kolom, untuk disimpan dan dipulihkan.
modeProp'client' | 'server''client'server menampilkan baris apa adanya dan menyerahkan pengurutan, penyaringan, serta paginasi kepada Anda.
totalPropnumberJumlah baris di server.
loadingPropbooleanfalseMenampilkan bilah progres, dan baris placeholder selama belum ada baris.
localePropstring'en-US'Memformat angka dan tanggal, serta membaca angka yang diketik.
labelsPropPartial<NuiGridLabels>Semua teks yang ditampilkan atau diumumkan grid, untuk diterjemahkan.
cornersPropNuiCornersBentuk sudut: round, squircle, bevel, scoop, notch, atau square.
radiusPropNuiRadiusSeberapa bulat sudutnya: none, small, medium, large, atau full.
densityPropNuiDensitySeberapa banyak ruang yang digunakan komponen: compact, regular, atau roomy.
groupByPropstring[][]Kolom untuk mengelompokkan baris, mulai dari yang terluar.
collapsed
defaultCollapsed
onCollapsedChangeState
string[][]Kunci grup yang tertutup; awalnya semua grup terbuka.
getChildrenProp(row: T) => T[] | undefinedBaris-baris anak dari sebuah baris: grid menampilkan data pohon.
expanded
defaultExpanded
onExpandedChangeState
unknown[][]Kunci baris yang terbuka di data pohon; awalnya semuanya tertutup.
details
defaultDetails
onDetailsChangeState
unknown[][]Kunci baris yang detailnya terbuka.
totals, flashPropbooleanfalseBaris agregat atas semua baris yang tersaring; sel yang berkedip saat teksnya berubah, pada baris dengan rowId yang tetap.
layoutProp'table' | 'list' | 'auto''table'list menampilkan baris sebagai kartu, dan auto melakukannya di layar sempit.
toolbarPropboolean | 'auto''auto'Bilah yang mengurutkan, menyaring, dan memilih semua baris: selalu, tidak pernah, atau auto bersama kartu.
renderEmptyRender prop(filtered: boolean) => ReactNodeYang ditampilkan saat tidak ada baris; fungsinya diberi tahu apakah filter menyembunyikannya.
renderDetailRender prop(row: T) => ReactNodeDetail sebuah baris, ditampilkan di bawahnya saat dibuka. Grid menambahkan kolom berisi toggle.
onRowActivateCallback(row: T) => voidDipanggil dengan baris yang dibuka dengan Enter atau klik dua kali.
onCellEditCallback(edit: NuiGridEdit<T>) => voidDipanggil dengan setiap edit yang diterapkan.
onQueryChangeCallback(query: NuiGridQuery) => voidDipanggil dengan pengurutan, filter, pencarian, dan halaman setiap kali berubah, serta sekali di awal.
refPropRef<NuiGridHandle>Yang bisa dijangkau lewat ref grid: ekspor, pencetakan, dan fokus.
exportXlsx, printMetode(options?) => Blob, () => voidBaris yang tersaring dan terurut sebagai spreadsheet; mencetak semua baris.
exportCsvMetode(options?) => stringBaris yang tersaring dan terurut dari kolom yang terlihat, sebagai CSV.
expandAllMetode(open?: boolean) => voidMembuka setiap grup dan setiap baris yang punya anak, atau menutup semuanya.
focusCellMetode(row: number, col: number) => voidMemfokuskan sel; baris -1 adalah header.
clearFiltersMetode() => voidMengosongkan semua filter dan pencarian.
fitMetode(id: string) => voidMenyesuaikan lebar kolom dengan sel terlebar yang sudah dirender.

State bekerja seperti input bawaan React: teruskan nilai dan perbarui lewat callback on…Change-nya, atau teruskan nilai default… dan biarkan komponen yang menyimpannya.

Prop kustomisasi yang tidak Anda atur akan mengikuti atribut data-nui-* terdekat. Lihat panduan kustomisasi.

NuiGridColumn

Satu kolom. Menerima semua properti kolom Angular (hanya id dan header yang wajib), serta dua properti ini yang menggambarnya.

NuiGridColumn: Properti
NamaTipeDefaultDeskripsi
renderCellRender prop({ row, value, text, column }) => ReactNodeUntuk menggambar sel kolom sendiri, dari baris, nilai, dan teksnya.
renderHeaderRender prop(column) => ReactNodeUntuk menggambar header kolom sendiri; namanya tetap berasal dari header.