Import

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

NuiGrid

Bảng dữ liệu dựa trên phần tử table native.

NuiGrid: Thuộc tính
TênKiểuMặc địnhMô tả
rowsPropreadonly T[]Dữ liệu. Mỗi lần sửa sẽ thay dòng tương ứng và gọi onRowsChange; rows tiếp theo mà bạn truyền vào sẽ thay thế các lần sửa.
onRowsChangeCallback(rows: readonly T[]) => voidĐược gọi với các dòng sau mỗi lần sửa đã xác nhận.
columnsPropNuiGridColumn<T>[]Các cột, dưới dạng đối tượng NuiGridColumn.
rowIdProp(row: T) => unknownrow.id ?? rowKhóa của một dòng, dùng để chọn và theo dõi.
labelPropstringAccessible name của bảng.
selectionProp'none' | 'single' | 'multiple''none'Có cho chọn dòng hay không, và chọn được bao nhiêu.
selected
defaultSelected
onSelectedChangeState
unknown[][]Khóa của các dòng được chọn.
sort
defaultSort
onSortChangeState
NuiGridSort[][]Thứ tự sắp xếp, dưới dạng đối tượng { column, direction }; đối tượng đầu được ưu tiên.
filters
defaultFilters
onFiltersChangeState
Record<string, NuiGridFilter>{}Một bộ lọc cho mỗi id cột: toán tử và giá trị.
search
defaultSearch
onSearchChangeState
string''Các từ đều phải xuất hiện trong một dòng.
pageSize
defaultPageSize
onPageSizeChangeState
number0Số dòng mỗi trang, hoặc 0 để hiển thị một danh sách cuộn.
page
defaultPage
onPageChangeState
number0Trang đang hiển thị, tính từ 0.
pageSizesPropnumber[][10, 25, 50, 100]Các lựa chọn trong thanh phân trang.
virtualPropboolean | 'auto''auto'Chỉ render các dòng đang hiển thị: luôn luôn, không bao giờ, hoặc auto khi quá 100 dòng mà không phân trang.
heightPropstringĐộ dài CSS giới hạn chiều cao bảng; nội dung cuộn bên trong.
columnState
defaultColumnState
onColumnStateChangeState
NuiGridColumnState[][]Độ rộng, thứ tự, ghim và hiển thị của từng cột, để lưu và khôi phục.
modeProp'client' | 'server''client'server hiển thị dòng đúng như nhận được và để việc sắp xếp, lọc, phân trang cho bạn.
totalPropnumberSố dòng trên máy chủ.
loadingPropbooleanfalseHiển thị thanh tiến trình, và các dòng giữ chỗ khi chưa có dòng nào.
localePropstring'en-US'Định dạng số và ngày, và đọc số được gõ vào.
labelsPropPartial<NuiGridLabels>Mọi văn bản mà bảng hiển thị hoặc đọc lên, để dịch.
cornersPropNuiCornersHình dạng các góc: round, squircle, bevel, scoop, notch hoặc square.
radiusPropNuiRadiusMức bo góc: none, small, medium, large hoặc full.
densityPropNuiDensityLượng không gian mà component chiếm: compact, regular hoặc roomy.
groupByPropstring[][]Các cột để nhóm dòng, cột ngoài cùng trước.
collapsed
defaultCollapsed
onCollapsedChangeState
string[][]Khóa của các nhóm đang đóng; ban đầu các nhóm đều mở.
getChildrenProp(row: T) => T[] | undefinedCác dòng con của một dòng: bảng hiển thị dữ liệu dạng cây.
expanded
defaultExpanded
onExpandedChangeState
unknown[][]Khóa của các dòng đang mở trong dữ liệu dạng cây; ban đầu chúng đều đóng.
details
defaultDetails
onDetailsChangeState
unknown[][]Khóa của các dòng đang mở chi tiết.
totals, flashPropbooleanfalseMột dòng giá trị tổng hợp trên mọi dòng đã lọc; các ô lóe sáng khi văn bản thay đổi, ở những dòng có rowId cố định.
layoutProp'table' | 'list' | 'auto''table'list hiển thị dòng dạng thẻ, còn auto làm vậy trên màn hình hẹp.
toolbarPropboolean | 'auto''auto'Một thanh để sắp xếp, lọc và chọn mọi dòng: luôn luôn, không bao giờ, hoặc auto khi hiển thị dạng thẻ.
renderEmptyRender prop(filtered: boolean) => ReactNodeNội dung khi không có dòng nào; hàm được cho biết bộ lọc có ẩn chúng hay không.
renderDetailRender prop(row: T) => ReactNodeChi tiết của một dòng, hiển thị bên dưới dòng khi được mở. Bảng thêm một cột nút bật/tắt.
onRowActivateCallback(row: T) => voidĐược gọi với dòng được mở bằng Enter hoặc nhấp đúp.
onCellEditCallback(edit: NuiGridEdit<T>) => voidĐược gọi với mỗi lần sửa đã xác nhận.
onQueryChangeCallback(query: NuiGridQuery) => voidĐược gọi với sắp xếp, bộ lọc, tìm kiếm và trang mỗi khi chúng thay đổi, và một lần lúc bắt đầu.
refPropRef<NuiGridHandle>Những gì ref của bảng truy cập được: xuất dữ liệu, in và focus.
exportXlsx, printPhương thức(options?) => Blob, () => voidCác dòng đã lọc và sắp xếp, dưới dạng bảng tính; in mọi dòng.
exportCsvPhương thức(options?) => stringCác dòng đã lọc và sắp xếp của những cột đang hiển thị, dưới dạng CSV.
expandAllPhương thức(open?: boolean) => voidMở mọi nhóm và mọi dòng có dòng con, hoặc đóng tất cả.
focusCellPhương thức(row: number, col: number) => voidChuyển focus vào một ô; dòng -1 là tiêu đề.
clearFiltersPhương thức() => voidXóa mọi bộ lọc và tìm kiếm.
fitPhương thức(id: string) => voidChỉnh độ rộng một cột cho vừa ô rộng nhất đã được render của nó.

State hoạt động như các trường nhập liệu của chính React: truyền một giá trị và cập nhật nó từ callback on…Change, hoặc truyền giá trị default… để component tự giữ.

Các prop tùy biến mà bạn không đặt sẽ lấy giá trị từ thuộc tính data-nui-* gần nhất. Xem hướng dẫn tùy biến.

NuiGridColumn

Một cột. Nhận mọi thuộc tính của cột Angular (chỉ id và header là bắt buộc), cùng hai thuộc tính này để vẽ cột.

NuiGridColumn: Thuộc tính
TênKiểuMặc địnhMô tả
renderCellRender prop({ row, value, text, column }) => ReactNodeTự vẽ các ô của cột, từ dòng, giá trị và văn bản của ô.
renderHeaderRender prop(column) => ReactNodeTự vẽ tiêu đề của cột; header vẫn là tên của cột.