找回密码
 立即注册

QQ登录

只需一步,快速开始

rex_chujie
金牌服务用户   /  发表于:2019-10-18 15:44  /   查看:2821  /  回复:5
1金币
DragFillBlockCompleted事件绑定什么情况下触发

最佳答案

查看完整内容

Demo请查看附件

5 个回复

倒序浏览
最佳答案
最佳答案
Fiooona
论坛元老   /  发表于:2019-10-18 15:44:58
来自 6#
本帖最后由 Fiooona 于 2019-10-21 09:15 编辑

GIF.gif
Demo请查看附件

SpreadJSBasicDemo2.zip

5.19 KB, 下载次数: 40

组件化表格编辑器(预览版)试用进行中,点击了解详情!
请点击评分,对我的服务做出评价!5分为非常满意!
回复 使用道具 举报
rex_chujie
金牌服务用户   /  发表于:2019-10-18 15:52:03
2#
DragFillBlock和DragFillBlockCompleted事件触发时机区别在哪,为什么绑定了DragFillBlockCompleted拖拽结束之后不触发
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-10-18 16:49:44
3#
您好,DragFillBlock和DragFillBlockCompleted这两个事件都是针对“拖拽填充”操作的事件。

也就是用户通过点击拖拽单元格或区域的右下角,向上下左右拖拽填充的操作。

DragFillBlock事件在这个操作执行前会触发,可以在这个事件中通过修改参数的方式阻止用户操作;

DragFillBlockCompleted事件是在执行操作后触发。
回复 使用道具 举报
rex_chujie
金牌服务用户   /  发表于:2019-10-18 17:31:55
4#
sheet.bind(GC.Spread.Sheets.Events.DragFillBlock, function (sender, args) {  //黑十字拖拽复制过程绑定处理事件
            args.cancel= false;
            const sheet = args.sheet,
                  fillRange = args.fillRange,
                  sheetIndex = sheetNameList.indexOf(args.sheetName); //获取当前编辑的sheet下标
            let copyValue = "";  //被复制的值
            
            if( args.fillDirection==1 ){  //向右拖拽复制
                copyValue = sheet.getValue(fillRange.row,fillRange.col-1);  
                for(let i = 1;i<=fillRange.colCount;i++){
                    const   col = fillRange.col+i-1,  //当前单元格列数
                            tag  = sheet.getTag( fillRange.row,col); //当前单元格tag标签
                    dropInfoArray.push({  //向本地数组中添加拖拽复制的单元格行列单元格信息
                        row:fillRange.row,
                        col,
                        tag,
                        val:copyValue
                    })
                }
            }
            console.log(11,222)
        });

        sheet.bind(GC.Spread.Sheets.Events.DragFillBlockCompleted, function (e, info) {   //
            const sheet = args.sheet,
                  sheetIndex = sheetNameList.indexOf(args.sheetName); //获取当前编辑的sheet下标
            debugger;
            dropInfoArray.forEach(v=>{
                console.log( v,'v' );
                sheet.setTag(v.row,v.col,v.tag);
                debugger;
                saveEditData(v.tag,sheetIndex,v.val);
            })
        })
绑定两个事件,第一个拖拽触发,第二个根本就不触发
回复 使用道具 举报
rex_chujie
金牌服务用户   /  发表于:2019-10-18 17:32:46
5#
你能给个DragFillBlockCompleted事件触发得demo么
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部