找回密码
 立即注册

QQ登录

只需一步,快速开始

biz-dev

中级会员

99

主题

266

帖子

917

积分

中级会员

积分
917

微信认证勋章

biz-dev
中级会员   /  发表于:2019-10-18 16:49  /   查看:2438  /  回复:3
本帖最后由 biz-dev 于 2019-10-18 16:58 编辑

运行环境:Google Chrome 版本 77.0.3865.120(正式版本) (64 位)
Firefox 69.0.3 (64 位)

Spread JS版本:
12.0.0

运行方式:
协同办公,一个浏览器取得command,通过网络传给另一个浏览器,另一个浏览器执行command
按照之前的解决方式,重新new了range对象,也把对应的对象和属性都添加了

问题情况:
执行添加行/列 command无效果。

附件为导出的command,希望各位大佬帮忙解决一下。不胜感激!




add row.txt

15.54 KB, 下载次数: 54

3 个回复

倒序浏览
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-10-18 17:51:25
沙发
目前是会有一些操作无法通过command的方式来同步,比如复制粘贴等操作,这类无法同步的操作推荐使用事件监听来完成,添加行或者删除行的操作,对应的事件是        RowChanged 在        RowChanged事件中通过 propertyName 来进行判断
https://demo.grapecity.com.cn/sp ... ~RowChanged_EV.html
回复 使用道具 举报
biz-dev
中级会员   /  发表于:2019-10-23 15:12:53
板凳
请问,在点击完add rows/columns之后点击ctrl+z,发现发出的command还是addRows/addColumns,这个是为什么?
如何能取得ctrl+z的command或者事件响应?
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-10-24 09:20:36
地板
您好,实际上SpreadJS本身只是为协同功能提供了一个接口,

对于多人协同,SpreadJS在前端不可能知道您页面上哪些操作是当前用户的,哪些操作是其它协同用户的。

所以这里的ctrl + z 的撤销机制必须重新定义,在服务器端维护一个命令栈,

当当前用户执行撤销时,从命令栈中找到用户对应的上一步操作命令,

执行撤销后,再重做其它用户的操作。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部