#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, поэтому я предоставил его здесь.