aggrid:如何在日期字段上按年份分组?

时间:2018-12-13 13:59:12

标签: grouping ag-grid

我想按年份对行进行分组。 我没有带有int Year的列,但有一个类型为Date的列。

在我的列def中,我添加了rowGroup:true来激活分组。

现在我如何告诉aggrid我想对日期的year属性进行分组?

它是基于valueFormatter吗?

function (data) { 
  if (data.value == undefined) return ""; 
  var val = (new Date(data.value)).getFullYear(); 
  return val;
}

基于比较器func吗?

comparator: function (date1, date2) {
 if (date1 == undefined) return -1;
 if (date2 == undefined) return 1;
 var year1 = date1.getFullYear();
 var year2 = date2.getFullYear();
 if (year1 == year2)  return 0;
 return (year1 < year2) ?-1:1;
}

我在比较器中有一个断点。看来它从未被调用过。

是在cellFormatter中吗? cellRenderer吗?

现在我得到了组行为(复选框以展开/折叠行组)。但是我得到了n个叫做“ 2018”的组,每个日期一个。

奖金问题:如何将此列显示为组而不显示为普通列?我想按年份分组,并显示一个“第二”列,其日期为dd / mm / yyyy。

1 个答案:

答案 0 :(得分:0)

您可以做的是基于日期字段创建一个附加列,将其分组但隐藏为一列。使用valueGetter来显示年份:

function yearGetterFunction(params) {
  if (params.data.yourDateField== undefined) return ""; 
    var val = (new Date(params.data.yourDateField)).getFullYear(); 
    return val;
}

coldefs:[
    // your other columns, 
    {headerName: "Year", field: "yourDateField" valueGetter: yearGetterFunction, rowGroup:true, hide:true}
]