ag-grid: вызывать функцию каждый раз при нажатии на фильтр - PullRequest
0 голосов
/ 01 июля 2019

Как вызывать функцию каждый раз при щелчке значка фильтра в ag-grid. Ниже мой код. Моя цель - сбрасывать значения фильтра в столбце Name при каждом нажатии значка фильтра. Я должен использовать agSetColumnFilter. Я пытался filterParams, но он вызывается не каждый раз, а только один. Кто-нибудь может подсказать мне здесь?

  constructor(private http: HttpClient) {
    this.columnDefs = [
      {
        headerName: "Name",
        field: "name",
        width: 150,
        filter: "agSetColumnFilter",
        menuTabs: ['filterMenuTab']
      }
    ];
  }

  onGridReady(params) {
    this.rowData = [
      {
        name: "A",
        flag: true
      },
      {
        name: "B",
        flag: false
      }
    ];
  }

1 Ответ

0 голосов
/ 02 июля 2019

Вы можете использовать обратный вызов postProcessPopup (см. Документацию здесь ). Этот обратный вызов вызывается каждый раз, когда вы нажимаете на значок фильтра.

Добавьте ваш обратный вызов в ваш HTML:

[postProcessPopup]="postProcessPopup"

Затем создайте postProcessPopup функцию:

this.postProcessPopup = function(params) {
      if (params.column.colDef.field === 'name')
      {
        var athleteFilter = this.gridApi.getFilterInstance('name');
        athleteFilter.selectEverything();
        this.gridApi.onFilterChanged();
      }
    }.bind(this);

Если значок фильтра щелчка предназначен для поля name, затем выберите все для этого фильтра, а затем вызовите функцию onFilterChanged на gridApi, чтобы убедиться, что он обновляется.

Вы можете увидеть работающий Плункер здесь (попробуйте отфильтровать поле "Атлет").

Дополнительную документацию по API фильтра можно найти здесь .

...