Import
import { NuiGrid, type NuiGridColumn, type NuiGridHandle } from '@needless-ui/react/grid';NuiGrid
Una griglia dati su una tabella nativa.
| Nome | Tipo | Predefinito | Descrizione |
|---|---|---|---|
rowsProp | readonly T[] | I dati. Una modifica sostituisce la sua riga e chiama onRowsChange; le prossime rows che passi sostituiscono le modifiche. | |
onRowsChangeCallback | (rows: readonly T[]) => void | Chiamata con le righe dopo ogni modifica confermata. | |
columnsProp | NuiGridColumn<T>[] | Le colonne, come oggetti NuiGridColumn. | |
rowIdProp | (row: T) => unknown | row.id ?? row | La chiave di una riga, per la selezione e il tracciamento. |
labelProp | string | Nome accessibile della griglia. | |
selectionProp | 'none' | 'single' | 'multiple' | 'none' | Se le righe si possono selezionare, e quante. |
selecteddefaultSelectedonSelectedChangeStato | unknown[] | [] | Le chiavi delle righe selezionate. |
sortdefaultSortonSortChangeStato | NuiGridSort[] | [] | L’ordinamento, come oggetti { column, direction }; il primo ordina per primo. |
filtersdefaultFiltersonFiltersChangeStato | Record<string, NuiGridFilter> | {} | Un filtro per ogni id di colonna: un operatore e un valore. |
searchdefaultSearchonSearchChangeStato | string | '' | Parole che devono comparire tutte in una riga. |
pageSizedefaultPageSizeonPageSizeChangeStato | number | 0 | Righe per pagina, o 0 per un unico elenco a scorrimento. |
pagedefaultPageonPageChangeStato | number | 0 | La pagina mostrata, a partire da 0. |
pageSizesProp | number[] | [10, 25, 50, 100] | Le scelte nel paginatore. |
virtualProp | boolean | 'auto' | 'auto' | Renderizza solo le righe visibili: sempre, mai, o auto oltre 100 righe senza paginazione. |
heightProp | string | Una lunghezza CSS che limita la griglia; il contenuto scorre all’interno. | |
columnStatedefaultColumnStateonColumnStateChangeStato | 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. |
totalProp | number | Il numero di righe sul server. | |
loadingProp | boolean | false | Mostra una barra di avanzamento, e righe segnaposto quando non ce ne sono. |
localeProp | string | 'en-US' | Formatta numeri e date, e legge i numeri digitati. |
labelsProp | Partial<NuiGridLabels> | Ogni testo che la griglia mostra o annuncia, da tradurre. | |
cornersProp | NuiCorners | La forma degli angoli: round, squircle, bevel, scoop, notch o square. | |
radiusProp | NuiRadius | Quanto sono grandi gli angoli: none, small, medium, large o full. | |
densityProp | NuiDensity | Quanto spazio occupa: compact, regular o roomy. | |
groupByProp | string[] | [] | Le colonne per cui raggruppare le righe, a partire dalla più esterna. |
collapseddefaultCollapsedonCollapsedChangeStato | string[] | [] | Le chiavi dei gruppi chiusi; all’inizio i gruppi sono aperti. |
getChildrenProp | (row: T) => T[] | undefined | I figli di una riga: la griglia mostra dati ad albero. | |
expandeddefaultExpandedonExpandedChangeStato | unknown[] | [] | Le chiavi delle righe aperte nei dati ad albero; all’inizio sono chiuse. |
detailsdefaultDetailsonDetailsChangeStato | unknown[] | [] | Le chiavi delle righe con i dettagli aperti. |
totals, flashProp | boolean | false | Una 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. |
toolbarProp | boolean | 'auto' | 'auto' | Una barra che ordina, filtra e seleziona tutte le righe: sempre, mai, o auto con le card. |
renderEmptyRender prop | (filtered: boolean) => ReactNode | Cosa si vede quando non ci sono righe; riceve un valore che dice se le hanno nascoste i filtri. | |
renderDetailRender prop | (row: T) => ReactNode | I dettagli di una riga, mostrati sotto di essa quando è aperta. La griglia aggiunge una colonna di pulsanti toggle. | |
onRowActivateCallback | (row: T) => void | Chiamata con una riga aperta con Invio o con un doppio clic. | |
onCellEditCallback | (edit: NuiGridEdit<T>) => void | Chiamata con ogni modifica confermata. | |
onQueryChangeCallback | (query: NuiGridQuery) => void | Chiamata con ordinamento, filtri, ricerca e pagina a ogni cambiamento, e una volta all’inizio. | |
refProp | Ref<NuiGridHandle> | Cosa espone il ref della griglia: esportazioni, stampa e focus. | |
exportXlsx, printMetodo | (options?) => Blob, () => void | Le righe filtrate e ordinate come foglio di calcolo; stampa tutte le righe. | |
exportCsvMetodo | (options?) => string | Le righe filtrate e ordinate delle colonne visibili, in CSV. | |
expandAllMetodo | (open?: boolean) => void | Apre ogni gruppo e ogni riga con figli, o li chiude tutti. | |
focusCellMetodo | (row: number, col: number) => void | Sposta il focus su una cella; la riga -1 è l’intestazione. | |
clearFiltersMetodo | () => void | Azzera tutti i filtri e la ricerca. | |
fitMetodo | (id: string) => void | Adatta 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.
| Nome | Tipo | Predefinito | Descrizione |
|---|---|---|---|
renderCellRender prop | ({ row, value, text, column }) => ReactNode | Disegna tu le celle della colonna, a partire dalla riga, dal suo valore e dal suo testo. | |
renderHeaderRender prop | (column) => ReactNode | Disegna tu l’intestazione della colonna; header continua a darle il nome. |