Я хочу обновить данные для каждой страницы, используя режим ag-grid «на стороне сервера».
Для этого я сделал maxBlocksInCache 1 и cacheBlockSize равными элементам на страницу. Пока здесь не работает нормально.
Теперь, когда я изменяю количество элементов на странице, сетка начинает зацикливаться на себе, выбирая данные.
Я предполагаю, что это потому, что cacheBlockSize не изменяется или изменяется после попытки повторного извлечения строк (которые никогда не заканчиваются).
Теперь я попытался поместить кэш в качестве входных данных вместо agGridOption, но это ничего не изменило.
<select #paginationSelect (change)="onPageSizeChanged(paginationSelect.value)" [(ngModel)]="itemsPerPage">
<option [value]="item">2</option>
<option [value]="item">10</option>
</select>
<ag-grid-angular
[gridOptions]="gridOptions"
[cacheBlockSize]="itemsPerPage"
style="width: 100%; height: 250px;">
</ag-grid-angular>
this.gridOptions = {
...
rowModelType: 'serverSide',
pagination: true,
paginationPageSize: this.itemsPerPage, // itemsPerPage is a class attribute attached to a select element using ngModel.
maxBlocksInCache: 1,
...
}
// function called on change of select element value representing the number of items to display per page
onPageSizeChanged(newPageSize) {
this.gridApi.paginationSetPageSize(newPageSize);
}
Я хочу иметь возможность динамически изменять размер элементов страницы, сохраняя при этом повторное получение данных при изменении страницы.