Day 9 编辑单元格回写内存

返回目录

 

以下知识源码位置: [Git:  https://gitee.com/zhouweng/mini_sheet  version=919c79132a2d0468975579176b8837e7095fd6de ]

源代码回滚版本,参考这里[ https://blog.csdn.net/u010593516/article/details/113767587 ]

 

上一节,我们实现了双击单元格进入编辑格式的界面效果,但是输入信息后,并不会保存下来:

 

1.修改文件:

1)controllers/updateCell.js: 这里增加了一个函数 refreshCell(), 这个函数在luckysheet是在 formula.js文件里面,在minisheet,我们把这个函数迁移过来,这个函数处理流程如下:

a) #luckysheet-rich-text-editor 获取用户录入的信息;

b)通过 editor.deepCopyFlowData() 生成副本,并更新Store.flowdata;

c)调用 refresh.luckysheetrefreshgrid() 刷新页面;

 

2)global/refresh.js: luckysheetrefreshgrid()函数参数如果null,则使用#luckysheet-cell-main的高和宽

 

3)store/index.js: 增加luckysheetCellUpdate 参数用于记录具体哪个单元格被编辑了。

 

4)controllers/handler.js: 在点击单元格左键,如果存在变更单元格的情况,那么就调用 updateCell.refreshCell() 刷新页面

 

2.新增文件:

1)global/editor.js: 函数 deepCopyFlowData() 用于深度拷贝 Store.flowdata

 

通过上面的代码改造,现在可以正常把编辑信息回显到页面上

 

但是,拖拽滚动条后,我们发现在初始化页面范围之外的单元格编辑存在问题,编辑边缘的单元格无法正常回显到指定位置。

 

 

3.修改文件:

 1)utils/util.js: 增加函数 replaceHtml() ,这个函数可以将 constant.js 定义的html变量的变量,替换为指定的字符串

 

 2)controllers/constant.js: 新增定义 flow ,这里是关键点,在luckysheet-cell-flow_0 下面定义的 id="luckysheet-sheettable_0" 会设置高和宽,这样可以支持到 luckysheet-cell-main的滚动定位

 

 3)global/createdom.js: 在初始化页面的时候,将constant.js定义的flow append到body上面,并设置高和宽

 

经过这个修改,现在可以正常工作了。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值