企业 Grid 前端

Odoo 企业版 Grid 为什么不是“把 pivot 做成可编辑表格”:inline cell update、domain/context 与虚拟网格边界讲透

web_grid 的难点不在表格,而在单元格既要代表聚合口径,又要承载可编辑语义;domain、context、分页和虚拟渲染都因此变复杂。

企业 前端
进阶 开发者 1 分钟阅读
0 评论 0 点赞 0 收藏 6 阅读

很多人第一次看 Grid,会把它理解成“可编辑 pivot”。这个类比很容易把问题想简单了。

主要参考:

  • enterprise/web_grid/static/src/views/ 下相关前端文件

一、Grid 单元格不是普通字段输入框

一个 grid cell 往往代表一段 domain 下的聚合结果,甚至可能对应多条后端记录。因此所谓 inline edit,并不等于“给这格绑定一个字段,再写回去”。

前端真正要解决的是:用户编辑的是这格的总量、增量还是某条代表记录?

二、domain/context 为什么是这类视图的核心

每个单元格都需要稳定地知道自己代表的行列切片和过滤上下文。否则同样一个数值,换一页、换一组、换一个 period 就可能指向完全不同的数据集合。

所以 Grid 前端通常会把 domain/context 当成一等公民,而不是辅助参数。

三、为什么要强调虚拟网格

只要网格规模稍微大一点,前端就不可能一次把所有行列节点都真正渲染出来。虚拟渲染、局部刷新和滚动窗口是可用性的基础。

也正因为如此,Grid 的“可编辑”并不是全表静态 DOM 上绑事件,而是带着缓存、重算和局部刷新的编辑体验。

四、结论

企业版 Grid 的前端难点,不是做一张表,而是让“聚合视图 + 局部编辑 + 大规模滚动”三件事同时成立。

DISCUSSION

评论区

想参与讨论?先 登录 再发表评论。
还没有评论,你可以成为第一个留言的人。