By default, the grid will display rows at 25px. You can change this for each row individually to give each row a different height.
To change the row height for the whole grid, set the property rowHeight to a positive number. For example, to set the height to 50px, do the following:
Changing the property will set a new row height for all rows, including pinned rows top and bottom.
To change the row height so that each row can have a different height, implement the getRowHeight() callback. For example, to set the height to 50px for all non-pinned rows and 25px for pinned rows, do the following:
The params object passed to the callback has the following values:
The example below hows dynamic row height, specifying a different row height for each row. It uses the getRowHeight() callback to achieve this.
Below shows a more complex example, where the row height is changed based on contents of the 'Latin Text' column. The column definition has CSS style so that the cell does not have its contents clipped. The algorithm used to work out how tall the row should be is far from perfect, however it demonstrates that you can change your row height based on the contents of the cell.
Setting the row height is done once for each row. Once set, the grid will not ask you for the row height again. You can change the row height after it is initially set using a combination of api.resetRowHeights(), rowNode.setRowHeight() and api.onRowHeightChanged().
Call this API to have the grid clear all the row heights and work them all out again from scratch - if you provide a getRowHeight() callback, it will be called again for each row. The grid will then resize and reposition all rows again. This is the shotgun approach.
You can call rowNode.setRowHeight(height) directly on the rowNode to set its height. The grid will resize the row but will NOT reposition the rows (ie if you make a row shorter, a space will appear between it and the next row, the next rows will not be moved up). When you have set the row height (potentially on many rows) you need to call api.onRowHeightChanged() to tell the grid to reposition the rows. It is intended that you can call rowNode.setRowHeight(height) many times and then call api.onRowHeightChanged() once at the end.
When calling rowNode.setRowHeight(height), you can either pass in a new height or null or undefined. If you pass a height, that height will be used for the row. If you pass in null or undefined, the grid will then calculate the row height in the usual way, either use the provided rowHeight property or getRowHeight() callback.
The example below changes the row height in the different ways described above.
Note that this example uses ag-Grid Enterprise as it uses grouping. Setting the row height is an ag-Grid free feature, we just demonstrate it against groups and normal rows below.
Row height for pinned rows works exactly as per normal rows with one difference - it is not possible to dynamically change the height once set. However this is easily got around by just setting the pinned row data again which resets the row heights. Setting the data again is not a problem for pinned rows as it doesn't impact scroll position, filtering, sorting or group open / closed positions as it would with normal rows if the data was reset.