ngx-datatable 表格组件输入属性详解
概述
ngx-datatable 是一个功能强大的 Angular 数据表格组件,提供了丰富的配置选项来满足各种数据展示需求。本文将深入解析表格组件的核心输入属性,帮助开发者更好地理解和使用这个组件。
核心属性解析
列配置相关
columnMode
定义列宽度的计算方式:
standard
:基于列宽分配(默认)flex
:使用 CSS flex-grow 属性force
:按比例分配宽度
columns
表格需要显示的列数组,这是必填属性。
reorderable
是否允许列重新排序,默认值为 true
。
swapColumns
重新排序列时是交换列位置还是移动列,默认值为 true
。
数据相关
rows
要显示的行数据数组。
rowIdentity
用于唯一标识行的函数,在显示和选择行时用于跟踪和比较行。例如:
(row) => row.id
count
所有行的总数,默认值为 0
。
分页与排序
externalPaging
是否使用外部分页而非客户端分页,默认 false
。
externalSorting
是否使用外部排序而非客户端排序,默认 false
。
limit
每页显示的行数。
offset
当前页的偏移量(页码-1),默认 0
。
sorts
排序配置数组,包含列名(prop
)和排序方向(dir
)。示例:
[
{ prop: 'name', dir: 'desc' },
{ prop: 'age', dir: 'asc' }
]
sortType
排序类型:
"single"
:单列排序(默认)"multi"
:多列排序
外观与样式
headerHeight
表头高度(像素),设置为假值则不显示表头,默认 30
。
footerHeight
表尾高度(像素),设置为假值则不显示表尾,默认 0
。
rowHeight
行高配置,可以是:
- 数字:固定高度
- 函数:动态计算行高
- undefined:流体高度(不使用虚拟滚动时)
cssClasses
自定义图标 CSS 类,可覆盖排序箭头、分页按钮等默认样式。
rowClass
用于设置行 CSS 类的函数,示例:
(row) => ({
'highlight': row.important,
'disabled': !row.active
})
选择功能
selectionType
行选择模式:
undefined|false|null
:不可选择(默认)"single"
:单选"cell"
:单元格选择"multi"
:多选(需配合 Ctrl/Shift)"multiClick"
:点击多选"checkbox"
:复选框选择
selected
当前选中的行对象数组。
selectCheck
用于判断行是否可选的函数,示例:
(row) => row.status === 'active'
displayCheck
用于判断是否显示行选择框的函数。
滚动与虚拟化
scrollbarH
是否显示水平滚动条,默认 false
。
scrollbarV
是否显示垂直滚动条,固定高度时需要设为 true
,虚拟滚动时必须启用。
virtualization
是否使用虚拟滚动,默认 true
。虚拟滚动能显著提升大数据量时的性能。
其他功能
loadingIndicator
是否显示线性加载指示器,默认 false
。
messages
可自定义的本地化消息,包括:
emptyMessage
:无数据时显示的消息totalMessage
:总数消息selectedMessage
:已选消息
trackByProp
用于跟踪行的唯一标识属性名,如 "id"
。
最佳实践建议
-
大数据量处理:启用虚拟滚动(
virtualization: true
)和垂直滚动条(scrollbarV: true
)以优化性能。 -
自定义样式:利用
rowClass
和cssClasses
实现个性化的表格外观。 -
行选择:根据需求选择合适的
selectionType
,并配合selectCheck
实现复杂的选择逻辑。 -
分页与排序:大数据集应考虑使用
externalPaging
和externalSorting
将处理逻辑放在服务端。 -
响应式设计:
columnMode
设置为flex
可以使表格更好地适应不同屏幕尺寸。
通过合理配置这些属性,ngx-datatable 能够满足从简单列表到复杂数据展示的各种场景需求。