Expand All

  Getting Started



  Row Models





Github stars make projects look great. Please help, donate a star, it's free.
Read about ag-Grid's Partnership with webpack.
Get informed on releases and other ag-Grid news only - never spam.
Follow on Twitter

Data Functions

Data functions in ag-Grid are row grouping, pivoting and value (aggregation). All of these terms are related but each is a detailed topic by itself. Below gives a summary of the different functions to help frame the detailed explanations.

Row Grouping

Rows in the grid are grouped into expandable groups. This is the standard grouping that one typically finds in data grids. Aggregation is optional when grouping.

Value (Aggregation)

When grouping or pivoting you may use aggregation to aggregate values, eg apply a sum() or max() on a column. Although the mathematical term is 'Aggregation', it is referred to as 'Values' to keep consistent with the GUI, where you add columns to the 'Values' section of the tool panel (which in turn is consistent with Excel).


Rows in the grid are pivoted across columns making columns out of rows. Aggregation is mandatory for pivot as you need an aggregated value to pivot on.


An AggFunc (short for aggregation function) is the aggregation function you are applying to the value. Examples are sum() and max(). You can use built in functions or user provided functions.

Pivot Mode

Pivot mode is a mode of operation where the grid only uses columns that are included in a row grouping, value or pivot. The rowData detail is also not shown (you cannot open up groups all the way down and view the lowest level detail). Pivot mode is similar to viewing a pivot table in a Excel. When in pivot mode, column visibility is ignored.

Allow Pivot, Row Group, Value

Every column can be added as a row group, pivot or value using the grid API or configuration. However you need to mark the column definition with one or more of enableRowGroup, enablePivot or enableValue to allow the function via the GUI. If these flags are not set, the GUI will not allow the functions, however you API and configuration will not be impacted.