请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

Dtttax
金牌服务用户   /  发表于:2019-11-15 16:04  /   查看:6952  /  回复:17
在写逻辑代码的时候,很多时候要先调用sheet.suspendPaint 方法,如果中间js代码有时候错误了,表单就会空白,这个时候按理来讲我再重新切回来表单的时候调用sheet.resumeCalcService(true);  sheet.resumePaint();
应该是可以让表单显示。
但是很多时候还是不行,除了sheet.suspendPaint 这种原因还有什么情况会发生表单变白?
用户是经常遇到这种情况,只要一刷新重新加载就好了。但是我们很难重现,json一拿过来加载又正常。

17 个回复

Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-11-15 18:42:38
沙发
我在想是不是缓存的可能,另外用户有没有做一些异步的操作或者更改执行顺序的代码逻辑,这些都有可能,最好的解决办法是找一个完整能够重现问题的demo去调试,有时候ssjson是无法判断出原因的,因为ssjson是页面上面的设置序列化成的。而如果代码中的错误这里跟ssjson就没有关系了。
回复 使用道具 举报
Dtttax
金牌服务用户   /  发表于:2019-11-18 16:49:37
板凳
如果表单空白了怎么样才能恢复,除了页面重新刷新加载json的方法。

回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-11-18 18:28:35
地板
用的suspendpaint空白的话就是resumepaint
没什么其他办法了
回复 使用道具 举报
Dtttax
金牌服务用户   /  发表于:2019-11-19 09:46:15
5#
如果没有调用suspendpaint方法会不会出现表单空白的情况
回复 使用道具 举报
Dtttax
金牌服务用户   /  发表于:2019-11-19 09:46:44
6#
如果不调用suspendpaint方法出现了表单空白的情况要怎样才恢复
回复 使用道具 举报
Fiooona
论坛元老   /  发表于:2019-11-19 16:19:21
7#
你好,表单空白的原因可能是页面没有渲染,或者是js报错,您可以试下sheet.repaint()方法,不行的话,还是需要能有重现问题的Demo
组件化表格编辑器(预览版)试用进行中,点击了解详情!
请点击评分,对我的服务做出评价!5分为非常满意!
回复 使用道具 举报
Dtttax
金牌服务用户   /  发表于:2019-11-19 19:03:07
8#
有没有一个方法判断当前表单是空白或者没有渲染,这样就可以判断一下了调用sheet.repaint()


回复 使用道具 举报
Fiooona
论坛元老   /  发表于:2019-11-19 21:15:35
9#
如果是sheet.suspendpaint引起的出现空白的情况你可以加个标记暂停绘制的变量来判断,其他没有办法能判断。
组件化表格编辑器(预览版)试用进行中,点击了解详情!
请点击评分,对我的服务做出评价!5分为非常满意!
回复 使用道具 举报
Dtttax
金牌服务用户   /  发表于:2019-11-20 11:03:11
10#
如附件:在切换sheet时候做了这个动作
spread.bind(GC.Spread.Sheets.Events.ActiveSheetChanged, (e, args) =>{
            let sheet=args.newSheet;
            sheet.suspendCalcService(false);
            sheet.suspendPaint();
           //sheet.resumeCalcService(true);
            //sheet.resumePaint();
          })



然后按钮点击还原为什么还是不恢复回来。
    $("#restoredata").click(function () {
            let sheetName = spread.getActiveSheet().name();
                        let newSheet= spread.getActiveSheet();
            console.log(sheetName);
             newSheet.resumeCalcService(true);
         newSheet.resumePaint();
         newSheet.repaint();


           });

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