ایمپورت

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

NuiGrid

جدول داده‌ای بر پایهٔ جدول بومی.

NuiGrid: ویژگی‌ها
نامنوعپیش‌فرضتوضیح
rowsپراپreadonly T[]داده‌ها. هر ویرایش ردیف خودش را جایگزین می‌کند و onRowsChange را صدا می‌زند؛ rows بعدی که می‌دهید جای ویرایش‌ها را می‌گیرد.
onRowsChangeکال‌بک(rows: readonly T[]) => voidپس از هر ویرایش تأییدشده، با ردیف‌ها صدا زده می‌شود.
columnsپراپNuiGridColumn<T>[]ستون‌ها، به‌صورت اشیای NuiGridColumn.
rowIdپراپ(row: T) => unknownrow.id ?? rowکلید هر ردیف، برای انتخاب و ردیابی.
labelپراپstringنام دسترس‌پذیر جدول.
selectionپراپ'none' | 'single' | 'multiple''none'اینکه ردیف‌ها قابل انتخاب‌اند یا نه، و چند تا.
selected
defaultSelected
onSelectedChangeوضعیت
unknown[][]کلیدهای ردیف‌های انتخاب‌شده.
sort
defaultSort
onSortChangeوضعیت
NuiGridSort[][]مرتب‌سازی، به‌صورت اشیای { column, direction }؛ اولی مقدم است.
filters
defaultFilters
onFiltersChangeوضعیت
Record<string, NuiGridFilter>{}یک فیلتر برای هر id ستون: یک عملگر و یک مقدار.
search
defaultSearch
onSearchChangeوضعیت
string''واژه‌هایی که همه باید در ردیف باشند.
pageSize
defaultPageSize
onPageSizeChangeوضعیت
number0تعداد ردیف در هر صفحه، یا ۰ برای یک فهرست اسکرولی.
page
defaultPage
onPageChangeوضعیت
number0صفحهٔ نمایش‌داده‌شده، از ۰.
pageSizesپراپnumber[][10, 25, 50, 100]گزینه‌های صفحه‌بند.
virtualپراپboolean | 'auto''auto'فقط ردیف‌های در دید را رندر می‌کند: همیشه، هرگز، یا با auto از ۱۰۰ ردیف به بالا بدون صفحه‌بندی.
heightپراپstringطولی در CSS که ارتفاع جدول را محدود می‌کند؛ اسکرول درون آن است.
columnState
defaultColumnState
onColumnStateChangeوضعیت
NuiGridColumnState[][]پهنا، ترتیب، سنجاق و نمایش هر ستون، برای ذخیره و بازیابی.
modeپراپ'client' | 'server''client'server ردیف‌ها را همان‌طور که می‌رسند نشان می‌دهد و مرتب‌سازی، فیلتر و صفحه‌بندی را به شما می‌سپارد.
totalپراپnumberتعداد ردیف‌ها روی سرور.
loadingپراپbooleanfalseنوار پیشرفت نشان می‌دهد، و تا ردیفی نیامده، ردیف‌های موقت.
localeپراپstring'en-US'اعداد و تاریخ‌ها را قالب‌بندی می‌کند و اعداد تایپ‌شده را می‌خواند.
labelsپراپPartial<NuiGridLabels>همهٔ متن‌هایی که جدول نشان می‌دهد یا اعلام می‌کند، برای ترجمه.
cornersپراپNuiCornersشکل گوشه‌هایش: round، squircle، bevel، scoop، notch یا square.
radiusپراپNuiRadiusاندازهٔ گوشه‌هایش: none، small، medium، large یا full.
densityپراپNuiDensityفضایی که اشغال می‌کند: compact، regular یا roomy.
groupByپراپstring[][]ستون‌هایی که ردیف‌ها بر اساسشان گروه‌بندی می‌شوند، از بیرونی‌ترین.
collapsed
defaultCollapsed
onCollapsedChangeوضعیت
string[][]کلید گروه‌های بسته؛ گروه‌ها در ابتدا بازند.
getChildrenپراپ(row: T) => T[] | undefinedفرزندان یک ردیف: جدول دادهٔ درختی نشان می‌دهد.
expanded
defaultExpanded
onExpandedChangeوضعیت
unknown[][]کلید ردیف‌های باز در دادهٔ درختی؛ ردیف‌ها در ابتدا بسته‌اند.
details
defaultDetails
onDetailsChangeوضعیت
unknown[][]کلید ردیف‌هایی که جزئیاتشان باز است.
totals, flashپراپbooleanfalseردیفی از مقادیر تجمیعی روی همهٔ ردیف‌های فیلترشده؛ سلول‌هایی که با تغییر متنشان چشمک می‌زنند، در ردیف‌هایی با rowId پایدار.
layoutپراپ'table' | 'list' | 'auto''table'list ردیف‌ها را به شکل کارت نشان می‌دهد و auto در صفحه‌نمایش‌های باریک همین کار را می‌کند.
toolbarپراپboolean | 'auto''auto'نواری که ردیف‌ها را مرتب و فیلتر می‌کند و همه را انتخاب می‌کند: همیشه، هرگز، یا با auto همراه با کارت‌ها.
renderEmptyرندر پراپ(filtered: boolean) => ReactNodeآنچه وقتی ردیفی نیست نمایش داده می‌شود؛ به آن گفته می‌شود که آیا فیلترها ردیف‌ها را پنهان کرده‌اند.
renderDetailرندر پراپ(row: T) => ReactNodeجزئیات یک ردیف، که با باز شدن زیر آن نمایش داده می‌شود. جدول ستونی از دکمه‌های باز و بسته اضافه می‌کند.
onRowActivateکال‌بک(row: T) => voidبا ردیفی که با Enter یا دوبار کلیک باز شده صدا زده می‌شود.
onCellEditکال‌بک(edit: NuiGridEdit<T>) => voidبا هر ویرایش تأییدشده صدا زده می‌شود.
onQueryChangeکال‌بک(query: NuiGridQuery) => voidبا مرتب‌سازی، فیلترها، جستجو و صفحه صدا زده می‌شود، هر بار که تغییر کنند و یک بار در شروع.
refپراپRef<NuiGridHandle>آنچه از ref جدول در دسترس است: خروجی‌ها، چاپ و فوکوس.
exportXlsx, printمتد(options?) => Blob, () => voidردیف‌های فیلترشده و مرتب‌شده به‌صورت صفحه‌گسترده؛ همهٔ ردیف‌ها را چاپ می‌کند.
exportCsvمتد(options?) => stringردیف‌های فیلترشده و مرتب‌شدهٔ ستون‌های نمایان، به‌صورت CSV.
expandAllمتد(open?: boolean) => voidهمهٔ گروه‌ها و همهٔ ردیف‌های دارای فرزند را باز می‌کند، یا همه را می‌بندد.
focusCellمتد(row: number, col: number) => voidیک سلول را فوکوس می‌کند؛ ردیف -1 ردیف سرستون‌هاست.
clearFiltersمتد() => voidهمهٔ فیلترها و جستجو را پاک می‌کند.
fitمتد(id: string) => voidپهنای ستون را به اندازهٔ پهن‌ترین سلول رندرشده‌اش تنظیم می‌کند.

وضعیت مثل فیلدهای ورودی خود React کار می‌کند: یک مقدار بدهید و آن را از کال‌بک on…Change آن به‌روز کنید، یا یک مقدار default… بدهید و بگذارید کامپوننت خودش نگهش دارد.

پراپ‌های سفارشی‌سازی که تنظیمشان نکنید، از نزدیک‌ترین اتریبیوت data-nui-* پیروی می‌کنند. راهنمای سفارشی‌سازی را ببینید.

NuiGridColumn

یک ستون. همهٔ ویژگی‌های ستون Angular را می‌پذیرد (فقط id و header الزامی‌اند)، به‌علاوهٔ این دو که آن را رسم می‌کنند.

NuiGridColumn: ویژگی‌ها
نامنوعپیش‌فرضتوضیح
renderCellرندر پراپ({ row, value, text, column }) => ReactNodeبا آن سلول‌های ستون را خودتان رسم می‌کنید، از روی ردیف و مقدار و متن سلول.
renderHeaderرندر پراپ(column) => ReactNodeبا آن سرستون را خودتان رسم می‌کنید؛ نام ستون همچنان از header می‌آید.