i want to enable only some rows in my ag-grid(exemple :2/5) based on a condition .
editable:false can't help because it is applied on the whole list unless if there is a method I do not know
any help please
i want to enable only some rows in my ag-grid(exemple :2/5) based on a condition .
editable:false can't help because it is applied on the whole list unless if there is a method I do not know
any help please
You can just bind function
to editable
property in columnDef
, which will be executed on each try of edit
editable: this.checkEditFunction.bind(this)
...
checkEditFunction(params){
//params.node - for row identity
//params.column - for column identity
return !params.node.isRowPinned() // - just as sample
}
.bind(this)
- just for accessibility of external functions
You can call stopEditing()
method of gridApi
after checking the condition - keeping editable: true
.
Suppose, you are editing the row,
(rowEditingStarted)="onRowEditingStarted($event)"
Then in your component, you can stop the editing based on a check as per below.
private onRowEditingStarted($event) {
if(!$event.data.propertyToCheck == <someCondition>) {
this.gridApi.stopEditing();
}
Update:
You'll have to update template for the editing event.
<ag-grid-angular #agGrid
....
(rowEditingStarted)="onRowEditingStarted($event)"
....
></ag-grid-angular>
</div>
Check this example for reference: https://www.ag-grid.com/javascript-grid-cell-editing/#example-cell-editing