PS_QD 发表于 2024-10-29 13:59:36

撤销监听动作

本帖最后由 PS_QD 于 2024-10-29 14:09 编辑

1.我想实现的效果是我单元格编辑完之后我会根据脏数据自动保存然后把脏数据清除掉页面不重新加载(用这个清除方法:clearPendingChanges) 但是保存完之后我觉得不对然后撤回 但是监听不到我撤回的方法 脏数据中没有我撤回的数据
2.我复制表格数据同上也是复制完直接自动保存然后撤回也是拿不到监听
3.拖拽单元格赋值单元格也同上自动保存 然后撤回也是拿不到监听
我想问有直接能监听到这些方法的事件吗?

Lynn.Dou 发表于 2024-10-29 14:04:05

您好,以问题1为例:
这里说的“撤回”,是撤回“单元格编辑完之后”这个编辑单元格行为吗?
即在单元格中编辑输入,点击工具栏撤回按钮,此时单元格恢复至未编辑状态,这样理解对吗?
如果理解有误,请详细指出。

PS_QD 发表于 2024-10-29 14:08:16

Lynn.Dou 发表于 2024-10-29 14:04
您好,以问题1为例:
这里说的“撤回”,是撤回“单元格编辑完之后”这个编辑单元格行为吗?
即在单元格 ...

Ctrl+Z 撤回 保存的时候当前单元格已经编辑完毕了

PS_QD 发表于 2024-10-29 14:10:25

Lynn.Dou 发表于 2024-10-29 14:04
您好,以问题1为例:
这里说的“撤回”,是撤回“单元格编辑完之后”这个编辑单元格行为吗?
即在单元格 ...

没有点击工具栏 单纯的Ctrl+Z 撤回然后撤回的时候当前单元格已经不是编辑状态了

Lynn.Dou 发表于 2024-10-29 16:03:55

我目前的测试:
1、新建sheet,在A1单元格(此时为空白)输入abc,此时可以获取脏数据abc。
2、使用clearPendingChanges清除脏数据,此时脏数据为空。
3、按下ctrl+z撤销,A1单元格恢复空白状态,此时脏数据也为空。

您提到的“我单元格编辑完之后我会根据脏数据自动保存”这块具体的代码逻辑是什么?看起来撤回后的结果与我测试的不一致。

综上,请详细描述下通过监听ctrl+z想实现什么样的需求,我们调研看看是否有合适的方案。

PS_QD 发表于 2024-10-29 16:34:47

Lynn.Dou 发表于 2024-10-29 16:03
我目前的测试:
1、新建sheet,在A1单元格(此时为空白)输入abc,此时可以获取脏数据abc。
2、使用clear ...

单元格编辑完 我会立马与后台交互成功之后后台存下数 然后下次查询好加载最后存下的数据

撤销的作用 比如我原先是B如果我输入A 我这个A就会给后台然把原先的B覆盖成A 但是我觉得A不对我还是想要B然后就用到了撤销 然后撤销没监听 所以后台不知道我回退了 他还是保存我给他输入的A下次查询页面展示还是A而不是我想要的B

PS_QD 发表于 2024-10-29 16:37:04

Lynn.Dou 发表于 2024-10-29 16:03
我目前的测试:
1、新建sheet,在A1单元格(此时为空白)输入abc,此时可以获取脏数据abc。
2、使用clear ...
我现在用到了RangeChanged 还有ValueChanged 这俩实现起来怪怪的

Lynn.Dou 发表于 2024-10-29 16:54:01

PS_QD 发表于 2024-10-29 16:34
单元格编辑完 我会立马与后台交互成功之后后台存下数 然后下次查询好加载最后存下的数据

撤销的作用 ...


“单元格编辑完 我会立马与后台交互成功之后后台存下数 然后下次查询好加载最后存下的数据”
按此逻辑,SpreadJS撤销栈其实是没有这条信息的,所以ctrl+z撤销不会触发相应的变化。
SpreadJS没有提供监听ctrl+z键盘按键的事件,它内部的撤销逻辑是依赖undo/redo栈来完成的。
您可以网上搜索下js监听键盘按键的代码,在其中做判断。比如下图:


PS_QD 发表于 2024-10-30 09:14:24

Lynn.Dou 发表于 2024-10-29 16:54
“单元格编辑完 我会立马与后台交互成功之后后台存下数 然后下次查询好加载最后存下的数据”
按此逻 ...

好的 谢谢

PS_QD 发表于 2024-10-30 09:15:42

Lynn.Dou 发表于 2024-10-29 16:54
“单元格编辑完 我会立马与后台交互成功之后后台存下数 然后下次查询好加载最后存下的数据”
按此逻 ...

那我还是想知道 他撤回的是那些单元格。 这个只是监听到了动作 但是并不知道那些单元格变化了。
页: [1] 2
查看完整版本: 撤销监听动作