【发布时间】:2018-10-20 19:14:49
【问题描述】:
我只想根据条件启用我的 ag-grid(例如:2/5)中的某些行。
editable:false 无能为力,因为它应用于整个列表,除非有我不知道的方法
请帮忙
【问题讨论】:
我只想根据条件启用我的 ag-grid(例如:2/5)中的某些行。
editable:false 无能为力,因为它应用于整个列表,除非有我不知道的方法
请帮忙
【问题讨论】:
您可以将function 绑定到columnDef 中的editable 属性,这将在每次尝试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) - 仅用于外部功能的可访问性
【讨论】:
检查条件后可以调用gridApi的stopEditing()方法——保持editable: true。
假设,您正在编辑该行,
(rowEditingStarted)="onRowEditingStarted($event)"
然后在您的组件中,您可以根据以下检查停止编辑。
private onRowEditingStarted($event) {
if(!$event.data.propertyToCheck == <someCondition>) {
this.gridApi.stopEditing();
}
更新:
您必须更新编辑事件的模板。
<ag-grid-angular #agGrid
....
(rowEditingStarted)="onRowEditingStarted($event)"
....
></ag-grid-angular>
</div>
查看此示例以供参考:https://www.ag-grid.com/javascript-grid-cell-editing/#example-cell-editing
【讨论】:
cellEditingStarted 而不是rowEditingStarted,因为我没有使用全行编辑