agSelectCellEditor在编辑单元格时返回对象

时间:2019-12-03 02:32:10

标签: angular typescript angular8 ag-grid-angular

我在Angular8中使用agGrid。我有一列,当我要编辑时,应该在下拉列表中给我确切的映射值。我为此使用agSelectCellEditor。 这是代码:-

HTML

<ag-grid-angular class="ag-theme-balham" [gridOptions]="categoryGridOptions"
            [rowData]="categoryRowData" [columnDefs]="categoryColDef"  
            (gridReady)="onGridReady($event)">
        </ag-grid-angular>

TS文件

export class CategoryComponent{
  categoryRowData: any[]; 
  objCategoryMappings = [{
        0: "No",
        1: "Yes",        
      }];

  categoryColDef = [
       {
            headerName: 'Category Name', field: 'CategoryName',                        
            cellEditor: 'agLargeTextCellEditor',
            cellEditorParams: {
                maxLength: '50',
                cols: '20',
                rows: '1'
            }
        },
        {
            headerName: 'Is Subcategory', field: 'IsSubcategory',              
            cellEditor: 'agSelectCellEditor',
            cellEditorParams: {
                values: this.extractValues(this.objCategoryMappings),                                
            },                                          
            cellRenderer: (params) => {               
                return this.mapCategory(params);
            }, 
            refData: this.objCategoryMappings,            
        }];

    extractValues(mappings) {
        return Object.keys(mappings);
    }

    mapCategory(objRowData : any) : string
    {
        if (objRowData.data.IsSubcategory == 1)
            return "Yes";
        else if (objRowData.data.IsSubcategory == 0)
            return "No";        
    }
}

当我单击单元格时,就会出现下拉列表,如以下快照所示:- enter image description here

我在这里做什么错了?

1 个答案:

答案 0 :(得分:1)

看来您的objCategoryMappings应该是

objCategoryMappings = {
   0: "No",
   1: "Yes",        
};

即删除方括号-使其成为数组。

此外,通过使用Object.keys(objCategoryMappings)作为值,您将选择0和1。如果要改为“否”和“是”,请使用Object.keys(mappings).map((key) => mappings[key]);

相关问题