Ag-Grid + Angular +过滤复杂数据

时间:2018-10-29 05:47:34

标签: ag-grid

我有一个在角度应用程序中使用ag-grid的表。我有一列需要为其添加过滤器。此列是一个数组,每个记录可以有多个记录。请找到附件。当我过滤REPORT 1时,由于REPORT 2也是该行的一部分,因此将显示它。您能否让我知道如何过滤以仅获取报告1?

enter image description here

 {
        headerName: 'Available Reports',
        field: 'reportTypes',
        cellRendererFramework: LinkComponentComponent,                        
        width: 1020,        
        filter: "agSetColumnFilter",               
        keyCreator: this.reportKeyCreator  ,  
        filterParams: {          
          cellHeight: 20,
          debounceMs: 1000,             
          selectAllOnMiniFilter: true 
        }                                        
      } 

reportKeyCreator(params) {           
    return params.value[0].reportType;
  } 

这是数据结构

[
  {
    "Name": "ABCD-126",
    "reportDate": "10-02-2018",
    "reportTypes": [
      {
        "reportType": "REPORT1",
        "reportPath": "report1",
        "reportNum": "114"
      }
    ]
  },
  {
    "Name": "ABCD-126",
    "reportDate": "10-01-2018",
    "reportTypes": [
      {
        "reportType": "REPORT1",
        "reportPath": "report1",
        "reportNum": "115"
      },
      {
        "reportType": "REPORT2",
        "reportPath": "report2",
        "reportNum": "116"
      }
    ]
  }
]

1 个答案:

答案 0 :(得分:0)

您可以创建自己的customFitler并在内部处理所需的内容,但是 我想您需要按单元划分复杂的对象,并获得可以使用HeaderGroupping的分组概念。

这是一种更正确的方法。

{
    headerName: "Reports",
    children: [
        {headerName: "Type", field: "reportType"},
        {headerName: "Path", field: "reportPath"},
        {headerName: "Num", field: "reportNum"}
    ]
}