【问题标题】:agSelectCellEditor is returning object on editing the cellagSelectCellEditor 在编辑单元格时返回对象
【发布时间】:2020-03-27 16:25:58
【问题描述】:

我在 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";        
    }
}

当我单击单元格时,我会得到下拉菜单,如下图所示:-

我在这里做错了什么?

【问题讨论】:

    标签: angular typescript angular8 ag-grid-angular


    【解决方案1】:

    看起来你的 objCategoryMappings 应该是

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

    即删除方括号 - 这使它成为一个数组。

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

    【讨论】:

    • 删除方括号开始在下拉菜单中显示“否”和“是”。谢谢你。 Object.keys(objCategoryMappings) 显示“否”、“是”,但 Object.keys(mappings).m​​ap((key) => mappings[key]) 显示空白值。所以我保留了我的原始代码。我需要帮助,当我编辑单元格时,默认选择总是设置为“否”。我想设置下拉选择映射到单元格中的值。如果单元格中的值为“是”,则下拉菜单应显示默认选项;选择“是”。我让它在 UI-Grid 中工作,但不知道如何在 agGrid 中设置。如何使它成为可能?
    猜你喜欢
    • 2021-04-16
    • 2019-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-30
    • 1970-01-01
    • 2011-05-19
    相关资源
    最近更新 更多