Lzh on GitHub

行固定能力 (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

返回是否有任何行被固定。可以选择指定仅检查处于 topbottom 位置的固定行。

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

返回行在固定行组中的数字固定索引。