【问题标题】:View list of object in ag-grid data table在 ag-grid 数据表中查看对象列表
【发布时间】:2022-01-28 03:36:15
【问题描述】:

我正在使用。这是我的rowData 对象:

{  
 "Name" : "aaa",
 "Family" : "ds"
 "Age" : "16",
 "Tests" : [ 
    {
        "TestName" : "bb",
        "TestResult" : "1234"
    }, 
    {
        "TestName" : "aa",
        "TestResult" : "4322"
    }
 ]
}

我的问题是:如何将 Tests 对象作为单独的列查看 - TestName 将是列名,TestResult 将是单元格数据?

我的表格应该如下所示:

请问有什么好办法吗?

【问题讨论】:

    标签: ag-grid vue.js ag-grid


    【解决方案1】:

    @用户。我有一个动态列标题的演示。

    var data = { Name: 'aaa', Family: 'ds', Age: '16', bb: '1234', aa: '4322' };
    for(key in data){
      if(gridOptions.columnApi.getColumn(key)!= null){
        desktopDefaultCols.push({
                                                 headerName: key,
                                                 field: key,
                                               });
      }
    }
    

    【讨论】:

    • 谢谢,这几乎可以回答我的第二个问题。标头名称有效,但无法识别该文件 - 有什么想法吗?
    • 我认为您正在初始化错误标头,您可以通过 console.log(AllColumns) 检查。如果有重复的字段名称将 = key +'_1'
    【解决方案2】:

    您可以尝试将对象内部的数组转换为直接对象属性,以便它们可以由 ag-grid 呈现为列名称和值。

    const data = {  
    "Name" : "aaa",
    "Family" : "ds",
    "Age" : "16",
    "Tests" : [ 
        {
            "TestName" : "bb",
            "TestResult" : "1234"
        }, 
        {
            "TestName" : "aa",
            "TestResult" : "4322"
        }
    ]
    }
    const newData = {...data};
    
    for (const [key, value] of Object.entries(newData['Tests'])) {
        newData[value['TestName']] = value['TestResult']
    }
    delete(newData.Tests);
    

    newData 应该包含数组数据作为应该解决问题的对象的一部分。

    { Name: 'aaa', Family: 'ds', Age: '16', bb: '1234', aa: '4322' }
    

    这只是一个示例,可能存在像 TestName 这样的极端情况,多个字段可能相同,这将覆盖以前的值。

    【讨论】:

    • 感谢您花时间回答!,在转换 json 后 - 我如何设置标题名称和归档?
    • 您只需要在准备好数据后传递数据。只需使用 newData 为 aggrid 设置列和行数据。确保字段名称匹配。你可以从这里读到它。 ag-grid.com/vue-data-grid/getting-started。或者请分享您如何为 ag-grid 设置数据的示例,以便我们可以调试任何问题。
    • 我正在设置网格列如下:this.gridCol.push{ headerName: "Name", field: "Name" } - 如果我知道提交的名称。但现在它的动态对象 - 我怎么知道标题名称是什么?
    • @user 您可以通过遍历键来简单地设置标题。
    • 对,这就是我所做的:for (var key in this.newRwoUpdate) { this.gridColumns.push({ headerName: key, field: key, checkboxSelection: false, headerCheckboxSelection: false, }) ; } 但现在没有显示提交的仪表(我只有标题)
    猜你喜欢
    • 2018-10-12
    • 2019-05-01
    • 2021-02-04
    • 2020-03-31
    • 2017-07-24
    • 2018-04-19
    • 2021-10-31
    • 2022-08-19
    • 2011-10-16
    相关资源
    最近更新 更多