导入

import-grid.ts
import { NuiGrid, NuiGridCell, type NuiGridColumn } from '@needless-ui/angular/grid';

NuiGrid

基于原生 table 元素的数据表格。

选择器
nui-grid
NuiGrid: 属性
名称类型默认值说明
rows双向绑定readonly T[]数据。编辑会替换行,因此请用 [(rows)] 绑定。
columns输入NuiGridColumn<T>[]列,以 NuiGridColumn 对象的形式提供。
rowId输入(row: T) => unknownrow.id ?? row行的 key,用于选择和跟踪。
label输入string表格的可访问名称。
selection输入'none' | 'single' | 'multiple''none'行是否可选,以及可选几行。
selected双向绑定unknown[][]所选行的 key。
sort双向绑定NuiGridSort[][]排序,以 { column, direction } 对象的形式提供;排在前面的优先。
filters双向绑定Record<string, NuiGridFilter>{}按列 id 设置的筛选条件:一个运算符和一个值。
search双向绑定string''必须全部出现在同一行中的词。
pageSize双向绑定number0每页行数;设为 0 则显示为一个滚动列表。
page双向绑定number0当前显示的页,从 0 开始。
pageSizes输入number[][10, 25, 50, 100]分页器中可选的每页行数。
virtual输入boolean | 'auto''auto'只渲染可见的行:始终、从不,或 auto(不分页且超过 100 行时启用)。
height输入string限制表格高度的 CSS 长度,内容在表格内部滚动。
columnState双向绑定NuiGridColumnState[][]每列的宽度、顺序、固定和可见性,用于保存和恢复。
mode输入'client' | 'server''client'server 按原样显示收到的行,把排序、筛选和分页交给你处理。
total输入number服务器上的总行数。
loading输入booleanfalse显示进度条;没有行时显示占位行。
locale输入stringLOCALE_ID用于格式化数字和日期,以及解析输入的数字。
labels输入Partial<NuiGridLabels>表格显示或播报的所有文本,供翻译使用。
corners输入NuiCorners边角的形状:round、squircle、bevel、scoop、notch 或 square。
radius输入NuiRadius边角的大小:none、small、medium、large 或 full。
density输入NuiDensity占用的空间:compact、regular 或 roomy。
rowActivate输出T按 Enter 键或双击打开某行时,发出该行。
cellEdit输出NuiGridEdit<T>每次提交编辑时发出该编辑。
queryChange输出NuiGridQuery排序、筛选、搜索或页码变化时发出它们。
exportCsv方法(options?) => string以 CSV 格式返回筛选和排序后的行,只包含可见的列。
focusCell方法(row: number, col: number) => void让某个单元格获得焦点;第 -1 行是表头。
clearFilters方法() => void清除所有筛选条件和搜索。

用于自定义的输入属性如果未设置,会沿用最近的 data-nui-* 属性。详见自定义指南。

NuiGridColumn

一列。只有 id 和 header 是必需的。

NuiGridColumn: 属性
名称类型默认值说明
id属性string唯一值;也是排序、筛选和列状态中使用的 key。
header属性string表头文本。
value属性keyof T | ((row: T) => V)行的某个 key,或以行为参数的函数。默认为 row[id]。
type属性'text' | 'number' | 'date' | 'boolean' | 'enum''text'决定对齐方式、排序、筛选和编辑器。
format属性Intl options | ((value, row) => string)用于数字和日期的 Intl 选项,或生成文本的函数。
options属性NuiOption<V>[]enum 列的选项,以 NuiOption 对象的形式提供。
width, minWidth, maxWidth属性number单位为像素。
flex属性number与其他 flex 列分配剩余的空间。
align属性'start' | 'center' | 'end'默认值取决于类型:数字和日期对齐到末端。
pinned, hidden属性'start' | 'end', boolean列初始的固定和可见状态。
sortable, filterable, resizable, reorderable, hideable属性booleantrue都可以设为 false 来关闭。
compare属性(a: V, b: V) => number自定义排序。
editable, validate属性boolean | ((row) => boolean), (value, row) => string | null单元格是否可编辑,以及值无效时显示的提示。
set属性(row: T, value: V) => T生成编辑后的行。默认为带有新值的副本。

NuiGridCell

绘制某列的单元格。上下文中包含行、它的值和文本。

选择器
ng-template[nuiGridCell]
NuiGridCell: 属性
名称类型默认值说明
nuiGridCell输入string列的 id。

NuiGridHeader

绘制某列的表头。

选择器
ng-template[nuiGridHeader]
NuiGridHeader: 属性
名称类型默认值说明
nuiGridHeader输入string列的 id。

NuiGridEmpty

没有行时显示的内容。上下文会说明这些行是否被筛选条件隐藏。

选择器
ng-template[nuiGridEmpty]