【发布时间】:2019-10-18 14:11:08
【问题描述】:
我正在学习如何在 react 中使用 ag-grid,但发现了一个问题:
当我从 web api 获取数据时,结果非常好,比如 8600 个结果
问题:
我想知道是否有可能,例如,每页只获得 20 个结果,而不是一次获得所有结果,或者仅通过使用这种洞察力准备的 api 来实现
一些代码:
//http request
onGridReady = params => {
this.gridApi = params.api;
this.gridColumnApi = params.columnApi;
const httpRequest = new XMLHttpRequest();
httpRequest.open( "GET", "https://raw.githubusercontent.com/ag-grid/ag-grid/master/packages/ag-grid-docs/src/olympicWinners.json" );
httpRequest.send();
httpRequest.onreadystatechange = () => {
if (httpRequest.readyState === 4 && httpRequest.status === 200) {
updateData(JSON.parse(httpRequest.responseText));
}
};
const updateData = data => {
this.setState({ rowData: data });
};
};
//ag grid
render() {
return (
<div className="ag-theme-balham" style={{ height: '700px', width: '95%' }}>
<AgGridReact
columnDefs={this.state.columnDefs}
defaultColDef={this.state.defaultColDef}
defaultColGroupDef={this.state.defaultColGroupDef}
columnTypes={this.state.columnTypes}
rowData={this.state.rowData}
onGridReady={this.onGridReady}
pagination={true}
paginationPageSize={20}
/>
</div>
);
}
【问题讨论】:
-
在你的情况下,数据没有分页,但我认为网格有pagination
-
@HMR 是的,它有并且我正在使用,但我认为当我使用分页时,它会继续同时获得所有内容
-
@HMR 如果 api 有这个分页是可能的吗? (我是使用 api 的新手)
-
答案是否定的,因为您请求的是 json 文件,而不是 json 端点。如果您正在请求端点,那么您可以(例如)添加参数,例如 page=.. 和 size=..