Сетка Ag: фильтры столбцов не обновляются после добавления строки - PullRequest
0 голосов
/ 04 июля 2019

Я создал Ag-сетку с пользовательским фильтром столбцов. При добавлении строки в таблицу фильтр не обновляется.

https://stackblitz.com/edit/ag-grid-custom-filter

enter image description here

Эксперт Посоветуйте пожалуйста?

HTML

  <ag-grid-angular  #agGrid class="ag-theme-balham cis-ag-grid" [defaultColDef]="defaultColDef"
      [columnDefs]="columnDefs" [rowSelection]="rowSelection" [rowData]="rowData" [suppressMenuHide]="true"
      [rowDragManaged]="true" [frameworkComponents]="frameworkComponents" (selectionChanged)="onSelectionChanged()"
      (rowClicked)='onRowClicked($event)' (gridReady)="onGridReady($event)" (valueChanged)="onCellValueChanged($event)"
       [gridOptions]="gridOptions" >
    </ag-grid-angular>
    <!-- ./ Ag-grid -->

TS

onCellValueChanged(params) {
    var col = params.column;
    switch (col.getId()) {
      case "name":
        this.refreshName(params.api, params.newValue);
        break;
    }
  }

refreshName(api, newValue) {
    var filter = api.getFilterInstance("name");
    var model = filter.getModel();
    filter.resetFilterValues();
    var filterWasActive = model !== null;
    if (filterWasActive) {
      if (model && model.values.indexOf(newValue) < 0) {
        model.values.push(newValue);
      }
      filter.setModel(model);
    }
  }

Добавление строки

 const addedRow = this.gridOptions.api.updateRowData({ add: [selectedView.data] });
      addedRow.add[0].setSelected(true);
      this.gridApi.getFilterInstance("name").resetFilterValues(); // Trying to refresh the filter
      this.gridOptions.api.ensureIndexVisible(addedRow.add[0].rowIndex, "top");

1 Ответ

1 голос
/ 24 июля 2019

Вы должны будете добавить эту строку this.gridApi.onFilterChanged(); после удаления этой строки

this.filter4.onNewRowsLoaded();

, чтобы позволить ag-grid знать, что данные были изменены извне.

Согласно документам -

onFilterChanged () - Информирует сетку об изменении фильтра.Обычно это вызывается после смены фильтра через один из API-интерфейсов фильтра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...