Import

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

NuiGrid

Una griglia dati su una tabella nativa.

NuiGrid: Proprietà
NomeTipoPredefinitoDescrizione
rowsPropreadonly T[]I dati. Una modifica sostituisce la sua riga e chiama onRowsChange; le prossime rows che passi sostituiscono le modifiche.
onRowsChangeCallback(rows: readonly T[]) => voidChiamata con le righe dopo ogni modifica confermata.
columnsPropNuiGridColumn<T>[]Le colonne, come oggetti NuiGridColumn.
rowIdProp(row: T) => unknownrow.id ?? rowLa chiave di una riga, per la selezione e il tracciamento.
labelPropstringNome accessibile della griglia.
selectionProp'none' | 'single' | 'multiple''none'Se le righe si possono selezionare, e quante.
selected
defaultSelected
onSelectedChangeStato
unknown[][]Le chiavi delle righe selezionate.
sort
defaultSort
onSortChangeStato
NuiGridSort[][]L’ordinamento, come oggetti { column, direction }; il primo ordina per primo.
filters
defaultFilters
onFiltersChangeStato
Record<string, NuiGridFilter>{}Un filtro per ogni id di colonna: un operatore e un valore.
search
defaultSearch
onSearchChangeStato
string''Parole che devono comparire tutte in una riga.
pageSize
defaultPageSize
onPageSizeChangeStato
number0Righe per pagina, o 0 per un unico elenco a scorrimento.
page
defaultPage
onPageChangeStato
number0La pagina mostrata, a partire da 0.
pageSizesPropnumber[][10, 25, 50, 100]Le scelte nel paginatore.
virtualPropboolean | 'auto''auto'Renderizza solo le righe visibili: sempre, mai, o auto oltre 100 righe senza paginazione.
heightPropstringUna lunghezza CSS che limita la griglia; il contenuto scorre all’interno.
columnState
defaultColumnState
onColumnStateChangeStato
NuiGridColumnState[][]Larghezza, ordine, blocco e visibilità di ogni colonna, da salvare e ripristinare.
modeProp'client' | 'server''client'server mostra le righe man mano che arrivano e lascia a te ordinamento, filtri e paginazione.
totalPropnumberIl numero di righe sul server.
loadingPropbooleanfalseMostra una barra di avanzamento, e righe segnaposto quando non ce ne sono.
localePropstring'en-US'Formatta numeri e date, e legge i numeri digitati.
labelsPropPartial<NuiGridLabels>Ogni testo che la griglia mostra o annuncia, da tradurre.
cornersPropNuiCornersLa forma degli angoli: round, squircle, bevel, scoop, notch o square.
radiusPropNuiRadiusQuanto sono grandi gli angoli: none, small, medium, large o full.
densityPropNuiDensityQuanto spazio occupa: compact, regular o roomy.
groupByPropstring[][]Le colonne per cui raggruppare le righe, a partire dalla più esterna.
collapsed
defaultCollapsed
onCollapsedChangeStato
string[][]Le chiavi dei gruppi chiusi; all’inizio i gruppi sono aperti.
getChildrenProp(row: T) => T[] | undefinedI figli di una riga: la griglia mostra dati ad albero.
expanded
defaultExpanded
onExpandedChangeStato
unknown[][]Le chiavi delle righe aperte nei dati ad albero; all’inizio sono chiuse.
details
defaultDetails
onDetailsChangeStato
unknown[][]Le chiavi delle righe con i dettagli aperti.
totals, flashPropbooleanfalseUna riga di aggregati su tutte le righe filtrate; celle che lampeggiano quando il loro testo cambia, nelle righe con un rowId stabile.
layoutProp'table' | 'list' | 'auto''table'list mostra le righe come card, e auto lo fa sugli schermi stretti.
toolbarPropboolean | 'auto''auto'Una barra che ordina, filtra e seleziona tutte le righe: sempre, mai, o auto con le card.
renderEmptyRender prop(filtered: boolean) => ReactNodeCosa si vede quando non ci sono righe; riceve un valore che dice se le hanno nascoste i filtri.
renderDetailRender prop(row: T) => ReactNodeI dettagli di una riga, mostrati sotto di essa quando è aperta. La griglia aggiunge una colonna di pulsanti toggle.
onRowActivateCallback(row: T) => voidChiamata con una riga aperta con Invio o con un doppio clic.
onCellEditCallback(edit: NuiGridEdit<T>) => voidChiamata con ogni modifica confermata.
onQueryChangeCallback(query: NuiGridQuery) => voidChiamata con ordinamento, filtri, ricerca e pagina a ogni cambiamento, e una volta all’inizio.
refPropRef<NuiGridHandle>Cosa espone il ref della griglia: esportazioni, stampa e focus.
exportXlsx, printMetodo(options?) => Blob, () => voidLe righe filtrate e ordinate come foglio di calcolo; stampa tutte le righe.
exportCsvMetodo(options?) => stringLe righe filtrate e ordinate delle colonne visibili, in CSV.
expandAllMetodo(open?: boolean) => voidApre ogni gruppo e ogni riga con figli, o li chiude tutti.
focusCellMetodo(row: number, col: number) => voidSposta il focus su una cella; la riga -1 è l’intestazione.
clearFiltersMetodo() => voidAzzera tutti i filtri e la ricerca.
fitMetodo(id: string) => voidAdatta una colonna alla più larga delle sue celle renderizzate.

Lo stato funziona come nei campi dei moduli di React: passa un valore e aggiornalo dalla sua callback on…Change, oppure passa un valore default… e lascia che lo tenga il componente.

Le props di personalizzazione che non imposti seguono l’attributo data-nui-* più vicino. Vedi la guida alla personalizzazione.

NuiGridColumn

Una colonna. Accetta tutte le proprietà della colonna Angular (solo id e header sono obbligatori), più queste due, che la disegnano.

NuiGridColumn: Proprietà
NomeTipoPredefinitoDescrizione
renderCellRender prop({ row, value, text, column }) => ReactNodeDisegna tu le celle della colonna, a partire dalla riga, dal suo valore e dal suo testo.
renderHeaderRender prop(column) => ReactNodeDisegna tu l’intestazione della colonna; header continua a darle il nome.