You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何禁用Server-Side模式下Ag Grid的自动重载功能?

解决AG Grid服务端模型下的不必要请求问题

我来帮你搞定这两个头疼的自动请求触发问题,这都是服务端行模型(Server-Side Row Model)里很常见的场景:

1. 首次getRows后设置columnDefs避免二次请求

当你首次通过getRows拿到数据后,调用api.setColumnDefs默认会触发表格刷新,进而发起第二次不必要的请求。要阻止这个行为,你可以在调用setColumnDefs时传入第二个参数,开启suppressRefresh:

// 首次getRows返回结果后
const dynamicColumnDefs = 你的动态生成列定义;
api.setColumnDefs(dynamicColumnDefs, { suppressRefresh: true });

这样设置列定义只会更新表头和列配置,不会触发表格的自动刷新,自然也就不会发起额外的getRows请求。如果之后需要让单元格和新列匹配渲染,你可以调用api.refreshCells()手动更新,这不会触发服务端请求。

2. 设置过滤器值/销毁过滤器时避免自动重载

设置过滤器值

调用setFilterValues时,默认会触发过滤器变更事件,进而触发服务端请求。你可以利用该方法的第二个参数suppressFilterChangeEvent,设为true来阻止事件触发:

const filterInstance = api.getFilterInstance('目标列ID');
filterInstance.setFilterValues(后端返回的过滤器选项, true); // 第二个参数设为true

这样设置过滤器选项后,不会触发表格的自动请求,完全贴合你的业务需求。

销毁过滤器

调用destroyFilter时,默认会触发表格刷新和服务端请求。同样,你可以传入第二个参数suppressRefresh来阻止这个行为:

api.destroyFilter('目标列ID', true); // 第二个参数设为true

这个参数会让表格只销毁过滤器实例,不触发任何刷新或请求操作,彻底解决每次销毁都发请求的问题。


内容的提问来源于stack exchange,提问作者manymanymore

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.27 17:47:44