Search code examples
javascriptangularag-gridag-grid-angular

Angular agGrid - Is it possible to pass rowSelection event into cellRenderer?


I've got a custom radio button cellRenderer which I'm trying to display as selected when a row is clicked.

It works when clicking on the button directly, but I want it to also select on row selection, if the user clicks elsewhere.

The problem is, the cellRenderer doesn't know when it's row is clicked. The API documentation for agGrid only has a cellClicked method.

Is there a way to do this?


Solution

  • There are a few ways of doing this. Here is one approach:

    1. Firstly, you can listen to whether a row has been clicked or selected via the following events: rowClicked, rowSelected.

    Read more about these events in the documentation: https://www.ag-grid.com/javascript-grid-events/#reference-selection

    You can either add these events globally on the gridOptions or, on the cell renderer itself by utilising the Grid API method: addEventListener (which you can read more about here: https://www.ag-grid.com/javascript-grid-api/#reference-events)

    1. Once you have captured the row selection/clicked event, you can get the instance of the cell renderer by using the API method getCellRendererInstances, you can read more on this implementation here: https://www.ag-grid.com/javascript-grid-cell-rendering-components/#accessing-cell-renderer-instances

    2. Finally, you have the instance of the renderer, you can do whatever you want to set the radio button to be checked. e.g. adding a method on the renderer to change the state.