在使用服务器端过滤时,需要在服务器端对应的 API 中返回符合过滤条件的数据 (filteredData)、数据总数 (rowCount)及请求的起始行和结束行。
如果 ag-grid 过滤器使用了起始行号和结束行号,则服务器端应该从请求中提取它们并使用它们自己的逻辑处理它们,而不是使用 ag-grid 提供的默认值。以下是示例代码:
// 在服务器端 API 中处理传入的起始行和结束行
function processRequest(request) {
let filteredData = data.filter(row => {
// 过滤数据...
});
let totalCount = filteredData.length;
let startRow = isNaN(request.startRow) ? 0 : Number(request.startRow);
let endRow = isNaN(request.endRow) ? filteredData.length : Number(request.endRow);
filteredData = filteredData.slice(startRow, endRow);
return {
filteredData: filteredData,
rowCount: totalCount
};
}
这个代码示例假设我们有一个 data
数组包含所有数据,我们已经从请求中提取了起始行 startRow
和结束行 endRow
,然后使用 slice
方法获取符合过滤条件的一部分数据。注意,我们在计算 endRow
时使用了数据总数 filteredData.length
。 如果 endRow
的值为 NaN 或不是数字,则默认值为数据总数 filteredData.length
。最后,我们返回一个包含过滤出的数据 filteredData
和行数 rowCount
的对象。