Row Pinning APIs
行固定能力 (Can-Pin)
行是否可以被 固定,由以下条件决定:
options.enableRowPinning解析为true。options.enablePinning未设置为false。
状态 (State)
固定状态以以下形式存储在表格中:
export type RowPinningPosition = false | 'top' | 'bottom'
export type RowPinningState = {
top?: string[]
bottom?: string[]
}
export type RowPinningRowState = {
rowPinning: RowPinningState
}
表格选项 (Table Options)
enableRowPinning
enableRowPinning?: boolean | ((row: Row<TData>) => boolean)
启用/禁用表格中所有行的行固定功能。
keepPinnedRows
keepPinnedRows?: boolean
当为 false 时,如果固定行被筛选或分页出表格,它们将不可见。当为 true 时,无论筛选或分页如何,固定行将始终可见。默认为 true。
onRowPinningChange
onRowPinningChange?: OnChangeFn<RowPinningState>
如果提供,当 state.rowPinning 改变时,此函数将使用 updaterFn 调用。这会覆盖默认的内部状态管理,因此你还需要从你自己的管理状态中提供 state.rowPinning。
表格 API (Table API)
setRowPinning
setRowPinning: (updater: Updater<RowPinningState>) => void
设置或更新 state.rowPinning 状态。
resetRowPinning
resetRowPinning: (defaultState?: boolean) => void
将 rowPinning 状态重置为 initialState.rowPinning,或者可以传递 true 来强制重置为默认的空白状态 {}。
getIsSomeRowsPinned
getIsSomeRowsPinned: (position?: RowPinningPosition) => boolean
返回是否有任何行被固定。可以选择指定仅检查处于 top 或 bottom 位置的固定行。
getTopRows
getTopRows: () => Row<TData>[]
返回所有顶部固定行。
getBottomRows
getBottomRows: () => Row<TData>[]
返回所有底部固定行。
getCenterRows
getCenterRows: () => Row<TData>[]
返回所有未固定在顶部或底部的行。
行 API (Row API)
pin
pin: (position: RowPinningPosition) => void
将行固定到 'top' 或 'bottom',如果传入 false 则取消固定到中心。
getCanPin
getCanPin: () => boolean
返回行是否可以被固定。
getIsPinned
getIsPinned: () => RowPinningPosition
返回行的固定位置('top'、'bottom' 或 false)。
getPinnedIndex
getPinnedIndex: () => number
返回行在固定行组中的数字固定索引。