Установить новое определение столбца с помощью setColumnDefs больше не работает - PullRequest
0 голосов
/ 04 декабря 2018

Я пытаюсь установить новые определения столбцов, вызывая setColumnDefs с помощью API сетки.Это не работает, как ожидалось.Имена заголовков столбцов больше не будут обновляться!

Смотрите этот Plunkr: Версия 19.1.x

Версия 19.0.0 - последняя рабочая версия.

См. Этот Plunkr: Версия 19.0.0

Для меня это кажется ошибкой!?

В моем проекте я использую Angular 5 и яобратите внимание на то же поведение.

Ответы [ 2 ]

0 голосов
/ 13 декабря 2018

Мне удалось воспроизвести ваше поведение.Следующий (грязный) обходной путь работает:

  gridOptions.api.setColumnDefs([]);
  gridOptions.api.setColumnDefs(newColDefs);

Задание для columnDefs пустого массива и последующей передачи newColDefs, по-видимому, дает то, что вы ищете.

0 голосов
/ 04 декабря 2018

Полагаю, это новый способ обнаружения изменений в последней версии.

Если вы обновите свой код следующим образом:

function updateColDef()
{ 
    let data = [];
    columnDefs.forEach(function(colDef) { 
        colDef.headerName = colDef.headerName + ' X ';
        data.push(colDef);
  })

  data.push( {
      headerName: 'New Column',
  });

  gridOptions.api.setColumnDefs(data);
}

Он будет работать, как и ожидалось.

Обновление:

Когда новые столбцы установлены, сетка будет сравниваться с текущими столбцами и определять, какие столбцы старые (подлежащие удалению), новые(новые столбцы созданы) или сохранены (оставшиеся столбцы сохранят свое состояние, включая положение, фильтр и сортировку).

Сравнение определений столбцов выполняется на 1) ссылка на объект сравнение и 2)идентификатор столбца, например colDef.colId .Если либо ссылка на объект соответствует, либо совпадает идентификатор столбца, то сетка обрабатывает столбцы как один и тот же столбец.

В первом случае это было сравнение объекта, во втором примере (послеобновление) его colId case.

изменения произошли от 19.1 версии выпуска

AG-1591 Разрешить дельта-изменения в определениях столбцов.

...