找回密码
 立即注册

QQ登录

只需一步,快速开始

肥夏米
初级会员   /  发表于:2022-3-10 15:13  /   查看:2226  /  回复:7
有一个这样的需求,假设有这样的填报表格: 企业微信截图_16468959318141.png272727050.png
F列根据前四列(ABCD)的值自动算出,但是这个计算是在后台计算,所以,就需要ABCD中任何一个单元格的值做变更就去请求后端接口实时返回计算的数据。
然后再对E列做数据验证,不允许超过F列。
所以我是需要对ABCD列的单元格都做事件的监听吗?一旦监听到有变更就请求后端接口返回数据?

6 个回复

倒序浏览
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2022-3-10 15:55:47
沙发
想要对值的变化做监听可以监听ValueChanged事件,有变化会触发该事件并拿到改变的单元格以及新值。

或者是我们还有一个功能叫脏数据,可以一次性拿到所有的变更数据,然后给回后端,后端处理完后,也一次传回来给前端,能够减少请求次数。这是对应学习指南的demo。
https://demo.grapecity.com.cn/sp ... s/edit/dirty-items#
回复 使用道具 举报
肥夏米
初级会员   /  发表于:2022-3-10 16:20:12
板凳
Derrick.Jiao 发表于 2022-3-10 15:55
想要对值的变化做监听可以监听ValueChanged事件,有变化会触发该事件并拿到改变的单元格以及新值。

或者 ...

有两个问题哈:
1. 【一次性拿到所有变更的脏数】,这个是怎么触发的?需要手工触发吗?还是说有任何变更都会触发?
2. 【后端处理完,一次传回给前端】,这个可以说的细一点吗?传回的数据任何知道各对应的是哪一行?是需要前端传回的脏数据带行号,后端查询返回的数据也带上行号吗?
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2022-3-10 16:55:03
地板
肥夏米 发表于 2022-3-10 16:20
有两个问题哈:
1. 【一次性拿到所有变更的脏数】,这个是怎么触发的?需要手工触发吗?还是说有任何变 ...

1、正如学习指南的demo,
https://demo.grapecity.com.cn/spreadjs/SpreadJSTutorial/features/cells/edit/dirty-items#

如果想要等做完所有改变之后获取到这些改变传给后端,需要手动来触发,用getDirtyCells。这是该接口返回的内容,里面有行索引、列索引、新值、旧值。
image.png282999266.png

如果想要自动触发,同样学习指南这个demo,用的CellChanged,也就相当于,每修改一次,就会触发一次,也就做一次请求传给后端。


2、如上图接口所拿到的数据,里面有行索引、列索引、新值、旧值,你可以根据你的需求去传给后端计算。前端你想其对应的什么位置显示什么值,那么就需要返回如行列索引以及值。这部分就属于业务上的需求了,需要根据实际需求去实现。
回复 使用道具 举报
肥夏米
初级会员   /  发表于:2022-3-10 17:23:58
5#
Derrick.Jiao 发表于 2022-3-10 16:55
1、正如学习指南的demo,
https://demo.grapecity.com.cn/spreadjs/SpreadJSTutorial/features/cells/ed ...

很详细,谢谢。
再追问一个问题,如果是手工触发的话,有没有方法直接可以获取页面上指定范围的所有数据来请求后端接口查询。并且获取到的数据里带行号?
回复 使用道具 举报
肥夏米
初级会员   /  发表于:2022-3-10 17:30:41
6#
Derrick.Jiao 发表于 2022-3-10 16:55
1、正如学习指南的demo,
https://demo.grapecity.com.cn/spreadjs/SpreadJSTutorial/features/cells/ed ...

另外如果我想放个单元格按钮来触发查询请求,怎么对单元格按钮配置触发请求接口呢
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2022-3-10 18:03:43
7#
肥夏米 发表于 2022-3-10 17:30
另外如果我想放个单元格按钮来触发查询请求,怎么对单元格按钮配置触发请求接口呢

想要获取指定范围的数据可以考虑用getArray,获取的就是一个指定范围的二维数组。

另外,我们的单元格按钮支持写command,也就是说可以在command里面写你所需的逻辑,更多信息可以参考这个学习指南
https://demo.grapecity.com.cn/spreadjs/SpreadJSTutorial/features/cells/cell-buttons#
image.png849995422.png
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部