首页
/ ngx-datatable 表格组件输入属性详解

ngx-datatable 表格组件输入属性详解

2025-07-08 06:11:26作者:庞队千Virginia

概述

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"

最佳实践建议

  1. 大数据量处理:启用虚拟滚动(virtualization: true)和垂直滚动条(scrollbarV: true)以优化性能。

  2. 自定义样式:利用 rowClasscssClasses 实现个性化的表格外观。

  3. 行选择:根据需求选择合适的 selectionType,并配合 selectCheck 实现复杂的选择逻辑。

  4. 分页与排序:大数据集应考虑使用 externalPagingexternalSorting 将处理逻辑放在服务端。

  5. 响应式设计columnMode 设置为 flex 可以使表格更好地适应不同屏幕尺寸。

通过合理配置这些属性,ngx-datatable 能够满足从简单列表到复杂数据展示的各种场景需求。