Я пытаюсь использовать настраиваемую сортировку столбца в ag-Grid в моем Ionic 4/Angular 8
приложении.
У меня есть образец приложения здесь или на Stackblitz Я не могу запустить его на Stackblitz, но он определенно работает локально,
В любом случае следует отметить несколько моментов: я хочу, чтобы сетка работала в виртуальном режиме (например, может иметь 1000 строк данных), а также я установил this.gridOptions.immutableData = true;
для обработки моих данных из ng/rx
.
Также я использую компонент в качестве шаблона ячейки, но я думаю, что мы можем проигнорировать это здесь (используя существующий пример)
Я хочу, чтобы строки были отсортированы, поэтому вызывая мою dateComparator
функцию,
- Когда я впервые загружаю данные
- Если у меня есть какие-либо добавленные или обновленные данные
Чтобы имитировать новые данные, поступающие с сервера, у меня есть кнопка добавления, которая вызывает метод add
.
Я добавил comparator
в столбец ...
public ngAfterViewInit(): void {
const self = this;
this.gridOptions.immutableData = true;
this.gridOptions.animateRows = true
this.gridOptions.api.setColumnDefs([
{
headerName: 'myheader',
comparator: self.dateComparator,
sortable: true,
field: 'equipment',
cellStyle: { padding: 0 },
cellRendererFramework: TemplateRendererComponent,
cellRendererParams: {
ngTemplate: this.itemCard
},
},
]);
this.setData();
}
private dateComparator(valueA, valueB, nodeA, nodeB, isInverted): number {
console.log('sorting');
return 1;
}
Однако, когда я загружаю сетку или вызываю вышеуказанный метод добавления, мой dateComparator
не вызывается. Он вызывается, только если я щелкаю заголовок столбца.
Я попытался позвонить this.gridOptions.api.redrawRows()
, но это не привело к сортировке. Я не вижу другой очевидной sort
функции для вызова.
У меня вопрос: как я могу применить эту сортировку автоматически, не щелкая заголовок столбца (т.е. когда я загружаю или обновляю свои данные)?