我正在列定义中使用以下代码:
{ headerName: 'Part', field: 'part',
cellStyle: {'background-color': 'cyan'}, editable: true,
cellEditor:'agSelectCellEditor', cellEditorParams:
我在网格中还有其他一列,
{ headerName: 'Colour', field: 'colour',
cellStyle: {'background-color': 'cyan'}, editable: true,
cellEditor:'agSelectCellEditor', cellEditorParams: function(params) {
var selectedPart = params.data.type; if (selectedPart==='R&S') {
return { values: this.partTypeListRS }; } else if(selectedPart==='WiFi')
{ return { values: this.partTypeListWifi }; } else
if(selectedPart==='Other') { return { values: this.partTypeListOther };
}}},
}
如果我单击满足selectedPart ==='R&S'条件并分别满足所有其他条件的行,则会收到无法读取未定义属性this.partTypeListRS的错误。
答案 0 :(得分:1)
您可以定义cellEditorParams
函数,以根据另一列的值返回不同的值。
这是来自ag-grid网站的示例-
cellEditor : 'agSelectCellEditor';
cellEditorParams: function(params) {
var selectedCountry = params.data.country;
if (selectedCountry==='Ireland') {
return {
values: ['Dublin','Cork','Galway']
};
} else {
return {
values: ['New York','Los Angeles','Chicago','Houston']
};
}
}
看看官方文档中的example。
答案 1 :(得分:0)
我使用箭头函数function(params)
代替了(params)=>
,然后我可以在CellEditorParams中访问它