我正在使用agGrid社区在我的应用程序中实现无限滚动。我在同一网格上使用了两个不同的rest API。初始化时,我有一组数据,这些数据很好地与onGridReady方法中的DataSource一起加载。 单击任何行时,我将使用另一个rest api,并使用与onGridReady方法中相同的代码,但是单击行时,无限滚动不适用于第二个rest api。
让我知道是否需要更多信息。
我尝试了多种解决方法,但是如果我使用同一个网格从使用两个不同数据源的差异API中获取数据,则agGrid只能识别一个数据源。
下面是我的onGridReady(),它在加载应用程序时加载一些数据。
onGridReady(params) {
this.gridApi = params.api;
this.gridColumnApi = params.columnApi;
this.http
.get("https://raw.githubusercontent.com/ag-grid/ag-grid/master/packages/ag-grid-docs/src/olympicWinners.json")
.subscribe(data => {
var dataSource = {
rowCount: null,
getRows: function(params) {
console.log("asking for " + params.startRow + " to " + params.endRow);
setTimeout(function() {
var rowsThisPage = data.slice(params.startRow, params.endRow);
var lastRow = -1;
if (data.length <= params.endRow) {
lastRow = data.length;
}
params.successCallback(rowsThisPage, lastRow);
}, 500);
}
};
params.api.setDatasource(dataSource);
});
} }
我需要什么? 我正在使用onCellClicked()调用另一个rest api,它将具有不同的数据集,并且无限滚动也应该在那里工作。
这是我的onCellCliked()
//此函数呈现数据,但是当我向下滚动页面时,无限滚动不起作用。
onCellClicked() {
this.http
.get("my second rest api url")
.subscribe(data => {
var newDataSource = {
rowCount: null,
getRows: function(params) {
console.log("asking for " + params.startRow + " to " + params.endRow);
setTimeout(function() {
var rowsThisPage = data.slice(params.startRow, params.endRow);
var lastRow = -1;
if (data.length <= params.endRow) {
lastRow = data.length;
}
params.successCallback(rowsThisPage, lastRow);
}, 500);
}
};
params.api.setDatasource(newDataSource);
});
}
我还需要无限滚动才能在onCellClicked()上工作。