Row Selection APIs
状态 (State)
行选择状态在表格中以以下形式存储:
export type RowSelectionState = Record<string, boolean>
export type RowSelectionTableState = {
rowSelection: RowSelectionState
}
默认情况下,行选择状态使用每行的索引作为行标识符。你也可以通过向表格传入一个自定义的 getRowId 函数,使用自定义的唯一行 ID 来跟踪行选择状态。
表格选项 (Table Options)
enableRowSelection
enableRowSelection?: boolean | ((row: Row<TData>) => boolean)
- 启用/禁用表格中所有行的行选择功能,或者
- 一个函数,给定一行,返回是否为该行启用/禁用行选择。
enableMultiRowSelection
enableMultiRowSelection?: boolean | ((row: Row<TData>) => boolean)
- 启用/禁用表格中所有行的多行选择功能,或者
- 一个函数,给定一行,返回是否为该行的子行/孙子行启用/禁用多行选择。
enableSubRowSelection
enableSubRowSelection?: boolean | ((row: Row<TData>) => boolean)
启用/禁用在选择父行时自动选择子行,或者一个函数,用于启用/禁用每行的自动子行选择。
(与展开或分组功能结合使用)
onRowSelectionChange
onRowSelectionChange?: OnChangeFn<RowSelectionState>
如果提供此函数,当 state.rowSelection 改变时,它将使用 updaterFn 调用。这会覆盖默认的内部状态管理,因此你需要完全或部分地在表格外部持久化状态更改。
表格 API (Table API)
getToggleAllRowsSelectedHandler
getToggleAllRowsSelectedHandler: () => (event: unknown) => void
返回一个处理程序,可用于切换表格中所有行的选择状态。
getToggleAllPageRowsSelectedHandler
getToggleAllPageRowsSelectedHandler: () => (event: unknown) => void
返回一个处理程序,可用于切换当前页面上所有行的选择状态。
setRowSelection
setRowSelection: (updater: Updater<RowSelectionState>) => void
设置或更新 state.rowSelection 状态。
resetRowSelection
resetRowSelection: (defaultState?: boolean) => void
将 rowSelection 状态重置为 initialState.rowSelection,或者可以传递 true 来强制重置为默认的空白状态 {}。
getIsAllRowsSelected
getIsAllRowsSelected: () => boolean
返回表格中所有行是否都已选中。
getIsAllPageRowsSelected
getIsAllPageRowsSelected: () => boolean
返回当前页面上所有行是否都已选中。
getIsSomeRowsSelected
getIsSomeRowsSelected: () => boolean
返回表格中 是否有部分行已选中。
getIsSomePageRowsSelected
getIsSomePageRowsSelected: () => boolean
返回当前页面上是否有部分行已选中。
toggleAllRowsSelected
toggleAllRowsSelected: (value: boolean) => void
选择/取消选择表格中的所有行。
toggleAllPageRowsSelected
toggleAllPageRowsSelected: (value: boolean) => void
选择/取消选择 当前页面上的所有行。
getPreSelectedRowModel
getPreSelectedRowModel: () => RowModel<TData>
返回未应用选择之前的行模型。
getSelectedRowModel
getSelectedRowModel: () => RowModel<TData>
返回已应用选择之后的行模型。
getFilteredSelectedRowModel
getFilteredSelectedRowModel: () => RowModel<TData>
返回已筛选并应用选择之后的行模型。
getGroupedSelectedRowModel
getGroupedSelectedRowModel: () => RowModel<TData>
返回已分组并应用选择之后的行模型。
行 API (Row API)
getIsSelected
getIsSelected: () => boolean
返回行是否已选中。
getIsSomeSelected
getIsSomeSelected: () => boolean
返回行的部分子行是否已选中。
getIsAllSubRowsSelected
getIsAllSubRowsSelected: () => boolean
返回行的所有子行是否都已选中。
getCanSelect
getCanSelect: () => boolean
返回行是否可以被选中。
getCanMultiSelect
getCanMultiSelect: () => boolean
返回行是否可以多选。
getCanSelectSubRows
getCanSelectSubRows: () => boolean
返回当父行被选中时,行是否可以自动选择子行。
toggleSelected
toggleSelected: (value?: boolean) => void
选择/取消选择该行。
getToggleSelectedHandler
getToggleSelectedHandler: () => (event: unknown) => void
返回一个处理程序,可用于切换行的选择状态。