如何根据Angular 6同一行中的其他单元格值在AG-Grid选择下拉列表中加载不同的选项?

Posted

技术标签:

【中文标题】如何根据Angular 6同一行中的其他单元格值在AG-Grid选择下拉列表中加载不同的选项?【英文标题】:How to load different options in AG-Grid select dropdown ,based on other cell value in the same row with Angular 6? 【发布时间】:2019-08-13 11:12:50 【问题描述】:

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

  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 属性。

【问题讨论】:

agSelectCellEditor dynamic list的可能重复 【参考方案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。

【讨论】:

cellEditor:'agSelectCellEditor', cellEditorParams: function(params) var selectedPart = params.data.rs_or_wifi; if (selectedPart==='R&S') return values: this.partTypeListRS ; else if(selectedPart==='WiFi') return values: this.partTypeListWifi ; else if(selectedPart==='Other') return values: this.partTypeListOther ; ,【参考方案2】:

我使用箭头函数 (params)=> 而不是 function(params) ,然后我可以在 CellEditorParams 中访问它

【讨论】:

以上是关于如何根据Angular 6同一行中的其他单元格值在AG-Grid选择下拉列表中加载不同的选项?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Angular 6 + Handsontable 根据另一个单元格值仅更改一个单元格值?

如何使用 Pandas 在 Python 中基于同一行中的另一个单元格设置单元格值

如何在ag-grid Angular中获取其他列单元格但同一行的值?

当根据单元格值为每一行添加其他数据时,VBA 创建超链接

基于单元格值的重复行

AG-Grid:如何根据同一行中其他单元格中的值更改单元格的颜色