创建 table 后更新 cellEditorParams
Update cellEditorParams after table creation
我正在使用 ag 网格显示 table 使用 Vue.js。我有一个这样的列定义:
{
headerName: "Status",
field: "featureStatus",
width: 110,
editable: true,
cellEditor: "agSelectCellEditor ",
cellEditorParams: {
values: []
}
},
this.allFeatureStatusNames 是一个计算变量,returns 一个字符串数组:
allFeatureStatusNames: function() {
return this.allFeatureStatuses.map(status => status.name)
}
我在 allFeatureStatuses 上有一个观察者,我想在创建 table 之后更新 cellEditorParams:
allFeatureStatuses: function() {
let colDef = this.columnDefs.find(col => col.headerName == "Status")
if (colDef) {
colDef.cellEditorParams = {
values: this.allFeatureStatusNames
}
}
this.gridColumnApi.refreshCells()
},
我遇到的问题是单元格编辑器从未更新过。它总是空的。创建表格后如何刷新或更新 cellEditorParams?
尽管采用您的方法,问题可能是您的 colDef 对象没有得到更新,因为您正在尝试修改现有对象,而创建新的 colDef 可能适合您。
像下面这样的东西对我有用 -
cellEditorParams: this.getValues.bind(this);
getValues: function() {
let allowedVals = this.allFeatureStatusNames;
return { values : allowedVals};
}
我正在使用 ag 网格显示 table 使用 Vue.js。我有一个这样的列定义:
{
headerName: "Status",
field: "featureStatus",
width: 110,
editable: true,
cellEditor: "agSelectCellEditor ",
cellEditorParams: {
values: []
}
},
this.allFeatureStatusNames 是一个计算变量,returns 一个字符串数组:
allFeatureStatusNames: function() {
return this.allFeatureStatuses.map(status => status.name)
}
我在 allFeatureStatuses 上有一个观察者,我想在创建 table 之后更新 cellEditorParams:
allFeatureStatuses: function() {
let colDef = this.columnDefs.find(col => col.headerName == "Status")
if (colDef) {
colDef.cellEditorParams = {
values: this.allFeatureStatusNames
}
}
this.gridColumnApi.refreshCells()
},
我遇到的问题是单元格编辑器从未更新过。它总是空的。创建表格后如何刷新或更新 cellEditorParams?
尽管采用您的方法,问题可能是您的 colDef 对象没有得到更新,因为您正在尝试修改现有对象,而创建新的 colDef 可能适合您。
像下面这样的东西对我有用 -
cellEditorParams: this.getValues.bind(this);
getValues: function() {
let allowedVals = this.allFeatureStatusNames;
return { values : allowedVals};
}