ایمپورت
import { NuiGrid, type NuiGridColumn, type NuiGridHandle } from '@needless-ui/react/grid';NuiGrid
جدول دادهای بر پایهٔ جدول بومی.
| نام | نوع | پیشفرض | توضیح |
|---|---|---|---|
rowsپراپ | readonly T[] | دادهها. هر ویرایش ردیف خودش را جایگزین میکند و onRowsChange را صدا میزند؛ rows بعدی که میدهید جای ویرایشها را میگیرد. | |
onRowsChangeکالبک | (rows: readonly T[]) => void | پس از هر ویرایش تأییدشده، با ردیفها صدا زده میشود. | |
columnsپراپ | NuiGridColumn<T>[] | ستونها، بهصورت اشیای NuiGridColumn. | |
rowIdپراپ | (row: T) => unknown | row.id ?? row | کلید هر ردیف، برای انتخاب و ردیابی. |
labelپراپ | string | نام دسترسپذیر جدول. | |
selectionپراپ | 'none' | 'single' | 'multiple' | 'none' | اینکه ردیفها قابل انتخاباند یا نه، و چند تا. |
selecteddefaultSelectedonSelectedChangeوضعیت | unknown[] | [] | کلیدهای ردیفهای انتخابشده. |
sortdefaultSortonSortChangeوضعیت | NuiGridSort[] | [] | مرتبسازی، بهصورت اشیای { column, direction }؛ اولی مقدم است. |
filtersdefaultFiltersonFiltersChangeوضعیت | Record<string, NuiGridFilter> | {} | یک فیلتر برای هر id ستون: یک عملگر و یک مقدار. |
searchdefaultSearchonSearchChangeوضعیت | string | '' | واژههایی که همه باید در ردیف باشند. |
pageSizedefaultPageSizeonPageSizeChangeوضعیت | number | 0 | تعداد ردیف در هر صفحه، یا ۰ برای یک فهرست اسکرولی. |
pagedefaultPageonPageChangeوضعیت | number | 0 | صفحهٔ نمایشدادهشده، از ۰. |
pageSizesپراپ | number[] | [10, 25, 50, 100] | گزینههای صفحهبند. |
virtualپراپ | boolean | 'auto' | 'auto' | فقط ردیفهای در دید را رندر میکند: همیشه، هرگز، یا با auto از ۱۰۰ ردیف به بالا بدون صفحهبندی. |
heightپراپ | string | طولی در CSS که ارتفاع جدول را محدود میکند؛ اسکرول درون آن است. | |
columnStatedefaultColumnStateonColumnStateChangeوضعیت | NuiGridColumnState[] | [] | پهنا، ترتیب، سنجاق و نمایش هر ستون، برای ذخیره و بازیابی. |
modeپراپ | 'client' | 'server' | 'client' | server ردیفها را همانطور که میرسند نشان میدهد و مرتبسازی، فیلتر و صفحهبندی را به شما میسپارد. |
totalپراپ | number | تعداد ردیفها روی سرور. | |
loadingپراپ | boolean | false | نوار پیشرفت نشان میدهد، و تا ردیفی نیامده، ردیفهای موقت. |
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[] | [] | ستونهایی که ردیفها بر اساسشان گروهبندی میشوند، از بیرونیترین. |
collapseddefaultCollapsedonCollapsedChangeوضعیت | string[] | [] | کلید گروههای بسته؛ گروهها در ابتدا بازند. |
getChildrenپراپ | (row: T) => T[] | undefined | فرزندان یک ردیف: جدول دادهٔ درختی نشان میدهد. | |
expandeddefaultExpandedonExpandedChangeوضعیت | unknown[] | [] | کلید ردیفهای باز در دادهٔ درختی؛ ردیفها در ابتدا بستهاند. |
detailsdefaultDetailsonDetailsChangeوضعیت | unknown[] | [] | کلید ردیفهایی که جزئیاتشان باز است. |
totals, flashپراپ | boolean | false | ردیفی از مقادیر تجمیعی روی همهٔ ردیفهای فیلترشده؛ سلولهایی که با تغییر متنشان چشمک میزنند، در ردیفهایی با 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 الزامیاند)، بهعلاوهٔ این دو که آن را رسم میکنند.
| نام | نوع | پیشفرض | توضیح |
|---|---|---|---|
renderCellرندر پراپ | ({ row, value, text, column }) => ReactNode | با آن سلولهای ستون را خودتان رسم میکنید، از روی ردیف و مقدار و متن سلول. | |
renderHeaderرندر پراپ | (column) => ReactNode | با آن سرستون را خودتان رسم میکنید؛ نام ستون همچنان از header میآید. |