找回密码
 立即注册

QQ登录

只需一步,快速开始

410863605

注册会员

3

主题

15

帖子

105

积分

注册会员

积分
105
最新发帖
410863605
注册会员   /  发表于:2017-7-23 18:07  /   查看:4081  /  回复:5
你好!
       我这边项目用spreadjs时,有个需求,就是用户从外面或当前表格中复制内容,然后粘贴到其他单元格里面时,先进行判断,比如说,判断粘贴的内容是否是纯数字,是的话,才能进行粘贴;否则return掉,不给粘贴。但是没有找到相关的事件,只找到clipboardpasting(此时内容已经粘进去,判断也没用)和clipboardpasted.....求助。。。

5 个回复

倒序浏览
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-7-24 10:43:10
沙发
您好,ClipboardPasting就是在粘贴之进行的判断,您可以在其中加入您的逻辑判断,如果不进行粘贴在事件中使用args.cancel = true;即可
回复 使用道具 举报
410863605
注册会员   /  发表于:2017-7-24 23:21:37
板凳
ClarkPan 发表于 2017-7-24 10:43
您好,ClipboardPasting就是在粘贴之进行的判断,您可以在其中加入您的逻辑判断,如果不进行粘贴在事件中使 ...

抱歉,白天上班公司不能用外网,刚试了一下,确实可以实现粘贴之前判断...不过我发现,如果我双击单元格进入编辑状态时,进行粘贴,这时候判断就失效了...只有在单击单元格进行粘贴时才有效
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-7-25 10:39:38
地板
410863605 发表于 2017-7-24 23:21
抱歉,白天上班公司不能用外网,刚试了一下,确实可以实现粘贴之前判断...不过我发现,如果我双击单元格 ...

您好,编辑状态时的粘贴属于单元格的编辑操作,不属于粘贴操作所以ClipboardPasting无法监听,您可以使用自定义单元格来完成功能,像这样
$(document).ready(function () {
        var spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss"));
                var sheet = spread.getActiveSheet();
                sheet.bind(GC.Spread.Sheets.Events.ClipboardPasting, function (sender, args) {
                        args.cancel = true;
                });
        function NumberCellType(){
        }
                NumberCellType.prototype = new GC.Spread.Sheets.CellTypes.Text();
                NumberCellType.prototype.createEditorElement = function(context) {
                        var editor = GC.Spread.Sheets.CellTypes.Text.prototype.createEditorElement.call(this, context);
                        //Creates a DOM element then returns it.
                        //var textarea = editor.firstElementChild;
                       
                        editor.onpaste = function(event){
                                var clipData = event.clipboardData ;
                                if(clipData.getData('text')=="123"){
                                        return false;
                                }
                                return clipData.getData('text');
                        }
                  
                        return editor;
                }
               
                sheet.setCellType(0,0, new NumberCellType());


    });
回复 使用道具 举报
410863605
注册会员   /  发表于:2017-7-25 22:46:43
5#
ClarkPan 发表于 2017-7-25 10:39
您好,编辑状态时的粘贴属于单元格的编辑操作,不属于粘贴操作所以ClipboardPasting无法监听,您可以使用 ...

刚试了,确实可以,,已经解决问题,多谢
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-7-26 08:47:12
6#
410863605 发表于 2017-7-25 22:46
刚试了,确实可以,,已经解决问题,多谢

不客气,有什么问题欢迎另开新帖进行询问。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部