如何基于与Angular 6在同一行中的其他单元格值在AG-Grid select下拉菜单中加载不同的选项?

时间:2019-03-22 12:54:45

标签: angular angular6 ag-grid ag-grid-angular

我正在列定义中使用以下代码:

 { 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的错误。

2 个答案:

答案 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中访问它