【发布时间】:2018-10-24 18:46:07
【问题描述】:
嗯,标题看起来和其他帖子很相似:
Angular Grid ag-grid columnDefs Dynamically change
AG-Grid: Make editable columns based on response from server
但我要问一个稍微不同的问题。
现在我有一堆列存储在 tableColumns 变量中。
每一列都有一个可编辑的属性。
对于现有数据,有些列是可编辑的,有些则不是。这是通过以下功能实现的。当我定义 columnDefs 时调用它。
checkEditable(columnName: string){
var editable = false;
this.configData.some((el) => {
if (columnName == el.key.columnName){
return el.editable == "Y";
}
});
return editable;
}
但是,对于附加在我的网格底部的新插入行,我希望所有列仅可编辑此记录。
此记录可以通过列 isChanged = "inserted" 来识别。
insertNewRow(){
var newItem = this.createNewRowData();
var res = this.gridOptions.api.updateRowData({add: [newItem]});
var updatedColDefs = [];
**//how can I update columnDefs here, so that all fields are editable for this record?**
var col = this.gridOptions.api.setColumnDefs(updatedColDefs);
}
createNewRowData(){
var newData = [];
this.tableColumns.forEach(item => {
if (item.headerName == "isChanged") {
newData["isChanged"] = "inserted";
} else {
newData[item.headerName] = "";
}
});
console.log(newData);
return newData;
}
很可能我必须创建一个函数来实现这一点,但似乎我无法将函数分配给列的“可编辑”属性?什么是正确的语法?
【问题讨论】: