ag-сетевая модель, эквивалентная selectValue

#ag-grid

#ag-grid

Вопрос:

Используя ag-grid 23.2.1, похоже, что наш текущий подход к фильтрации выходит из строя и указан как устаревший. Читая документацию по setModel, я не вижу способа заменить некоторые из наших selectValue, selectNothing и т. Д. Использование.

Пример 1. мы очищаем выделение, а затем выбираем пару значений при некотором условии, иначе мы выбираем все

 let filterInstance = this.gridOptions.api.getFilterInstance('make');
this.cacheFilterModel = this.gridOptions.api.getFilterModel();
if (condition) {
    filterInstance.selectNothing();
    filterInstance.selectValue('thing1');
    filterInstance.selectValue('thing2');
}
else {
    filterInstance.selectEverything();
}
filterInstance.applyModel();
this.gridOptions.api.onFilterChanged();
  

Пример 2. у нас есть некоторые значения фильтра в столбце, которые можно переключать с помощью флажков, которые вызывают метод, подобный приведенному ниже. если установлено одно из значений, оно добавляется к существующему фильтру, если флажок снят, значение удаляется. Могут быть уже отфильтрованные значения, и я действительно не вижу способа контекстно выбирать / отменять выбор значений с помощью setModel.

 filterExample (make, add) {
    let filterInstance = this.gridOptions.api.getFilterInstance('make');
    if (add) {
        filterInstance.selectValue(make);
    }
    else {
        filterInstance.unselectValue(make);
    }
    filterInstance.applyModel();
    this.gridOptions.api.onFilterChanged();
}
  

Существуют ли для них эквиваленты setModel?

Комментарии:

1. итак, вы не хотите выбирать / отменять выбор значений, если они уже являются частью отфильтрованного списка?

Ответ №1:

У меня была аналогичная проблема с setColumnFilter, где мне пришлось передать несколько значений. Вы можете использовать filterInstance.setModel для установки этих значений, передав массив следующим образом:

     filterInstance.setModel({ values: ['value1', 'value2'] })
    filterInstance.applyModel();
    gridOptions.api.onFilterChanged()
  

вот ссылка на то, как это сделать, из документации. Мне было трудно найти это в Google, поэтому я предоставил его здесь.

https://www.ag-grid.com/javascript-grid-filter-set-api/