Ich möchte serverseitige Paginierung in meinem ag-Grid durchführen. Ich habe das Grid erfolgreich implementiert und bestimmte Daten beim ersten Laden der Seite angezeigt. Ich habe mehr als 5000 Datensätze in meiner Tabelle und jedes Mal, wenn ich den nächsten Knopf drücke, muss ich den Server anrufen, um die nächsten Datensätze in meinem Raster zu bekommen. Aber ich weiß nicht, wie man Paginierungsereignisse abhört, um eine weitere HTTP-Anfrage zu machen. Mein Server wird nicht getroffen, wenn ich auf die Schaltfläche Weiter/Zurück klicke.ag-Grid serverseitige Paginierungsereignisse
My Grid Optionen:
this.gridOptions = <GridOptions>{};
this.gridOptions = {
enableServerSideSorting: true,
enableServerSideFilter: true,
enableSorting: true,
enableFilter: true,
enableColResize: true,
rowSelection: 'single',
rowDeselection: true,
columnDefs: this.columnDefs,
rowModelType: 'infinite',
paginationPageSize: 35,
maxConcurrentDatasourceRequests: 2,
infiniteInitialRowCount: 1,
getRowNodeId: (item: any) => {
return item.id;
},
pagination: true,
onGridReady:() => { this.gridOptions.api.sizeColumnsToFit(); },
context: { componentParent: this },//to invoke the method of this(parent) component from child component,
onRowClicked: (event: any) => { this.router.navigateByUrl(`/dataList/edit/${event.data.id}`); },
};
Datenquelle defination:
let dataSource = {
getRows: (params: any) => {
setTimeout(() => {
let dataAfterSortingAndFiltering = this.sortAndFilter(allOfTheData, params.sortModel, params.filterModel);
let rowsThisPage = dataAfterSortingAndFiltering.slice(params.startRow, params.endRow);
// if on or after the last page, work out the last row.
let lastRow = -1;
if (dataAfterSortingAndFiltering.length <= params.endRow) {
lastRow = dataAfterSortingAndFiltering.length;
}
params.successCallback(rowsThisPage, lastRow);
}, 500);
}
};
this.gridOptions.api.setDatasource(dataSource);