2017-02-20 15 views
1

Я пытаюсь воссоздать следующую сводную таблицу с AG-Грид: enter image description hereAG-Grid: использовать floatingBottomRowData когда Поворотная

Использование floatingBottomRowData я не могу найти способ, чтобы передать значения для всех генерируемых столбцов. поэтому одна пара значений дублируется: enter image description here

Моя цель - получить доступ к значению группы столбцов для каждой ячейки плавающей строки. Прямо сейчас я не могу сказать разницу между группами столбцов (что приводит к дублированию значений).

Есть ли способ дифференцировать разные пары (col1, col2)?

ответ

2

Ответ, который был дан в форуме AG-сетки является:

, чтобы получить ключ поворота, сделайте следующее:

floatingCellRenderer: function(params) { 
     if (gridOptions.columnApi.isPivotMode()) { 
      console.log(params.column.getId()); 
      var parent = params.column.getParent(); 
      if (parent) { 
       var pivotKey = console.log(parent.getOriginalColumnGroup().getColGroupDef().pivotKeys[0]); 
      }  
     } 
    } 

, чтобы получить столбцы в активном стержне, используйте столбец API , например columnApi.getPivotColumns(), который вернет список столбцов. это будет в порядке, поэтому, если у вас много столбцов, для каждого родителя, которого вы пересекаете, будет один.

+0

Вы придумали, как установитьPinnedBottomRowData при повороте? Код выше получает columnId (например, pivot_2), но setPinnedBottomRowData ([{pivot_2: 100, ...}]), похоже, не обращает на это внимания? – Andrew

0

Что я сделал для типа pivot_ закрепленной строки: я добавил в столбец рендереру строки, где я ожидаю, что агрегированная функция будет отображаться (для меня это было для sum и avg). Если я изменил опорную функцию, я вызвал обновление на закрепленной строке, чтобы установить новые значения.

pinnedRowCellRenderer: function (render) 
      { 
       for (var obj_id in render.data) 
       { 
        if (obj_id == render.column.colId) 
        { 
         return '<div>' + render.data[obj_id] + '</div>'; 
        } 
       } 
       return '<div></div>'; 
      } 

И результат выглядит следующим образом: Result image

Надеется, что это помогает!

Смежные вопросы