我正在使用 primereact,我想提高表格的性能,所以我想将其设置为服务器端分页,但我遇到了一些问题,服务器端分页可以使用此代码,但过滤器也停止了下载 CSV 我希望它下载所有被过滤的数据不仅仅是屏幕上呈现的 25 个数据,我怎样才能实现这一点?
useEffect(() => {
setFiltered(filteredData)
},[filteredData])
<DataTable
scrollable
size="small"
scrollHeight="auto"
className="datatable"
dataKey="id"
sortIcon={<PiSortDescendingBold />}
exportFilename={`${new Date().toLocaleDateString()}`}
value={filteredData}
ref={ref as any}
sortMode="single"
paginator
lazy
loading={loading}
first={first}
rows={rows}
onPage={e => {
setFirst(e.first)
setRows(e.rows)
}}
totalRecords={count}
rowsPerPageOptions={[10, 25, 50, 100]}
paginatorTemplate="RowsPerPageDropdown FirstPageLink PrevPageLink CurrentPageReport NextPageLink LastPageLink"
paginatorLeft
currentPageReportTemplate="{first} to {last} of {totalRecords}"
emptyMessage="No Data !"
onValueChange={e => setFiltered(e)}
// columns
</DataTable>
第一,rows是一个useState,里面有一个数字,setFiltered是一个空数组useState,count来自数据库的总计数
使用服务器端 REST API 进行排序、过滤器、分页等的完整工作示例
包括 REST 服务器并在一个示例中提供所有 UI 代码。