找回密码
 立即注册

QQ登录

只需一步,快速开始

张天笑

注册会员

15

主题

25

帖子

179

积分

注册会员

积分
179
张天笑
注册会员   /  发表于:2020-6-9 17:28  /   查看:5407  /  回复:11
我整理了一份演示demo
极简customerEditor, 不知道问题是不是出在这里
调wijmo 只能逆向调试, 不报错是第一步

注: 附件chm改为.html

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

11 个回复

倒序浏览
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2020-6-9 17:35:51
沙发
您好,这个问题需要进一步调研,预计明天上午给您回复。
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2020-6-10 06:04:41
板凳
用你的Demo没能重现这个问题,formatItem中第二个if的条件如果设置成跟第一个if一样时,那么c2 , c3列之间的数据就可以正常复制粘贴了,

复制粘贴操作本质是操作系统剪贴板,系统剪贴板肯定不能拷贝一个json对象,只能拷贝它的stringify字符串,所以加formatItem的目的就是parse这个json对象,

还可以参考一下用户实际的问题案例:

https://gcdn.grapecity.com.cn/fo ... hread&tid=75171
回复 使用道具 举报
张天笑
注册会员   /  发表于:2020-6-10 10:34:23
地板
KevinChen 发表于 2020-6-10 06:04
用你的Demo没能重现这个问题,formatItem中第二个if的条件如果设置成跟第一个if一样时,那么c2 , c3列之间 ...

操作步骤:
①. 点击坐标1,1,({"value":"Germany"}), ctrl c复制
②. 双击坐标0,2 激活input
③. ctrl v复制json字符串, enter回车 提交编辑
此时没能成功修改0.2
回复 使用道具 举报
张天笑
注册会员   /  发表于:2020-6-10 11:07:57
5#
KevinChen 发表于 2020-6-10 06:04
用你的Demo没能重现这个问题,formatItem中第二个if的条件如果设置成跟第一个if一样时,那么c2 , c3列之间 ...

可能是wj版本问题, 我再尝试下
回复 使用道具 举报
张天笑
注册会员   /  发表于:2020-6-10 11:49:56
6#
很多时候对比法就能发现问题, 经过一番折腾.
发现给单元格设计对象{}类型的值, 可以正常ctrl c ctrl v,设置为array类型, 则不行,

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2020-6-10 18:03:55
7#
你好,粘贴板中的数据是字符串,而目标单元格中是array,这触发了FlexGrid的数据校验,

如果要用粘贴,可以考虑直接保存JSON字符串,然后别忘了formatItem访问时,数组要加[0]

如附件

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
张天笑
注册会员   /  发表于:2020-6-10 19:44:35
8#
KevinChen 发表于 2020-6-10 18:03
你好,粘贴板中的数据是字符串,而目标单元格中是array,这触发了FlexGrid的数据校验,

如果要用粘贴, ...

你好, 感谢回复.
1. 刚对比过后, 发现您将原始值改为了JSON.stringify, 理由是触发了FlexGrid的数据校验,
这是一种解决方式, 但不太舒服.  可有方法在parst的tsv被wijmo解析之后, 在单元格被赋值前对数据进行处理,比如JSON.parse().

2. ctrl c 复制(0,2), 粘贴到(1,2) , 此时ctrl z 撤销无效, 需要切换到另一行才会触发撤销的行为

demo沿用您上次的附件

回复 使用道具 举报
张天笑
注册会员   /  发表于:2020-6-10 19:48:46
9#
本帖最后由 张天笑 于 2020-6-10 19:53 编辑
张天笑 发表于 2020-6-10 19:44
你好, 感谢回复.
1. 刚对比过后, 发现您将原始值改为了JSON.stringify, 理由是触发了FlexGrid的数据校验 ...

=================
回复 使用道具 举报
张天笑
注册会员   /  发表于:2020-6-10 20:06:11
10#
张天笑 发表于 2020-6-10 19:44
你好, 感谢回复.
1. 刚对比过后, 发现您将原始值改为了JSON.stringify, 理由是触发了FlexGrid的数据校验 ...

不能撤销的原因找到了,  
我切换到V 5.20192.624 , 就可以在同一单元格撤销, 回退, 立即可以看到效果
而用最新版的V 5.20201.680, 在同一单元格是不能回退 前进的.
版本号通过wijmo.getVersion()获取

评分

参与人数 1金币 +1000 收起 理由
KevinChen + 1000 回复晚了~ 看你这么积极的反馈问题,奖励金.

查看全部评分

回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部