Variable Row Heights
The grid supports variable row heights. The row height can be set by using the rowHeight
prop of the GridOptions
interface. The rowHeight
defaults to Constants.DEFAULT_ROW_HEIGHT
.
Setting row height
Similar to the row height, the header, footer, filter and toolbar heights can be set by using the headerRowHeight
, footerRowHeight
, filterRowHeight
and toolbarHeight
props of the GridOptions
interface. The headerHeight
, footerHeight
, filterHeight
and toolbarHeight
defaults to Constants.DEFAULT_HEADER_HEIGHT
, Constants.DEFAULT_FOOTER_HEIGHT
, Constants.DEFAULT_FILTER_HEIGHT
and Constants.DEFAULT_TOOLBAR_HEIGHT
respectively.
Setting header, footer, filter and toolbar height
Setting row height based on data
The row height can be set based on the data by using the variableRowHeightOptions
prop of the GridOptions
interface. This is
what the variableRowHeightOptions
prop looks like:
export interface VariableRowHeightOptions {
rowHeightFunction?: (value: RowPositionInfo) => number;
cellHeightFunction?: (
value: RowPositionInfo,
col: ColumnPositionInfo
) => number;
heightAdjustment?: number;
fontSize?: number;
}
export interface VariableRowHeightColumnOptions
extends VariableRowHeightOptions {
enabled?: boolean;
}
The rowHeightFunction
prop is a function that takes a RowPositionInfo
object and returns a number. The RowPositionInfo
object has the following properties:
export interface RowPositionInfo {
type: RowType;
startPosition: number;
height: number;
level: number;
data: unknown;
uniqueIdentifier: string;
parent?: RowPositionInfo;
}
Lets see how we can use the rowHeightFunction
prop to set the row height based on the data.
The cellHeightFunction
prop is a function that takes a RowPositionInfo
object and a ColumnPositionInfo
object and returns a number. For this to work, you have to set the variableRowHeightOptions
prop of the ColumnOptions
interface.
Setting cell height based on data
Lets see how we can use the cellHeightFunction
prop to set the row height based on the data.
In the above example, we have set the variableRowHeightOptions
prop of the ColumnOptions
interface for the employmentSummary
column. This will enable the cellHeightFunction
prop of the VariableRowHeightOptions
interface for the employmentSummary
column. The cellHeightFunction
prop is a function that takes a RowPositionInfo
object and a ColumnPositionInfo
object and returns a number. If you dont specify one, the grid internally calculates the height of the cell based on the data.
Notice that we had to set the horizontalScrollMode
prop of the GridOptions
interface to off
for the cellHeightFunction
prop to work.
We also set the fontSize
prop of the VariableRowHeightOptions
interface to 16
for the employmentSummary
column. This is because the cellHeightFunction
internally uses the fontSize
prop to calculate the height of the cell. If you dont specify one, the grid internally uses the Constants.DEFAULT_FONT_SIZE
value. You can use these properties along with the heightAdjustment
prop to fine tune the height of the cell.