找回密码
 立即注册

QQ登录

只需一步,快速开始

mohai
注册会员   /  发表于:2017-8-1 14:48  /   查看:3374  /  回复:6
要实现的效果:
打开一张报表:选中一片区域,按del 键后,表格内容被清除了,领导想实现内容清除之后:表格内容为0 而不是空,因为空存不到数据库会造成数据更新丢失;
这个效果如何实现?能否禁用 del 快捷键,或者是捕捉到del事件,

6 个回复

倒序浏览
CCKan
银牌会员   /  发表于:2017-8-1 17:40:08
推荐
禁用 delete, 把 clear 的快捷键设成空即可:
spread.commandManager().setShortcutKey("clear");

按 delete 的时候将值设置成0:
            sheet.bind(GC.Spread.Sheets.Events.RangeChanged, function (sender, args) {
                if (args.action === GC.Spread.Sheets.RangeChangedAction.clear) {
                    for (var i = 0; i < args.changedCells.length; i++) {
                        var cell = args.changedCells[i];
                        args.sheet.setValue(cell.row, cell.col, 0);
                    }
                }
            });

评分

参与人数 1满意度 +5 收起 理由
mohai + 5 谢谢,很给力

查看全部评分

回复 使用道具 举报
mohai
注册会员   /  发表于:2017-8-2 17:24:25
板凳
如何添加自定义的key呢?
回复 使用道具 举报
mohai
注册会员   /  发表于:2017-8-2 17:41:31
地板
我是否可以在
if (args.action === GC.Spread.Sheets.RangeChangedAction.clear) {
                    for (var i = 0; i < args.changedCells.length; i++) {
                        var cell = args.changedCells[i];
                        args.sheet.setValue(cell.row, cell.col, 0);
                    }
                }
这个if函数中判断一个条件如果条件不满足则不让他清空
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-8-2 18:57:54
5#
mohai 发表于 2017-8-2 17:41
我是否可以在
if (args.action === GC.Spread.Sheets.RangeChangedAction.clear) {
                    ...

可以的,args.sheet.setValue(cell.row, cell.col,"");这样就可以清空单元格了
另外自定义KEY的方法可以参考http://runjs.cn/detail/4k4hz2ew这个demo
回复 使用道具 举报
mohai
注册会员   /  发表于:2017-8-2 20:45:55
6#
ClarkPan 发表于 2017-8-2 18:57
可以的,args.sheet.setValue(cell.row, cell.col,"");这样就可以清空单元格了
另外自定义KEY的方法可以 ...

请问,V9版本的自定义Action的例子可以在哪里找到呢
???
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-8-3 14:19:23
7#
您好,V9版本的写法可以参考:
http://runjs.cn/detail/brfggowz
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部