找回密码
 立即注册

QQ登录

只需一步,快速开始

mmm223

金牌服务用户

6

主题

21

帖子

63

积分

金牌服务用户

积分
63
mmm223
金牌服务用户   /  发表于:2024-7-3 11:52  /   查看:29  /  回复:5
请问如何控制撤销栈里的内容

比如用户A编辑了一个单元格的内容为aaaa,用户B同步了这个操作,此时B无法撤销这个操作,只有用户A执行了撤回,B那边才会撤回。
我看了多人同步协同编辑Demo(可撤销) - SpreadJS & GcExcel专区 - 教程集锦 - 葡萄城开发者社区 (grapecity.com.cn)的内容,但是这种用户B可以返过来撤回。
请问如何解决

5 个回复

倒序浏览
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:3 天前
沙发
您好,举一个简单的例子,如果说用户A编辑了一个单元格,此时会传输一个editCell命令到用户B去执行,editCell中有一个canUndo属性,将其置为false即可不可撤销。

image.png886975402.png

一般来说SpreadJS本身对协同的支持较差,很多功能需要您自行开发,比如撤销重做栈等。
回复 使用道具 举报
mmm223
金牌服务用户   /  发表于:3 天前
板凳
Joestar.Xu 发表于 2024-7-3 17:48
您好,举一个简单的例子,如果说用户A编辑了一个单元格,此时会传输一个editCell命令到用户B去执行,editCe ...

我想的是维护两个撤销栈,一个是同步过来的撤销栈,一个是自己的撤销栈,如果是自己执行的撤销用自己的撤销栈,同步过来的撤销用同步的撤销栈。我翻阅了https://demo.grapecity.com.cn/sp ... Manager#constructor。这个文档,似乎不支持这么做
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:前天 09:27
地板
您好,您的思路没有问题,但是SpreadJS原生上是不支持使用两个撤销重做栈的,所以只能是您自行二开来实现这个需求。
回复 使用道具 举报
mmm223
金牌服务用户   /  发表于:前天 10:32
5#
Joestar.Xu 发表于 2024-7-4 09:27
您好,您的思路没有问题,但是SpreadJS原生上是不支持使用两个撤销重做栈的,所以只能是您自行二开来实现这 ...

你的意思是只能通过购买源码 然后二次开发是么。。。这个撤销栈不能自己手动修改替换吗?
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:前天 10:48
6#
您好,原生上没有接口能够对撤销栈手动进行修改和替换。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部