找回密码
 立即注册

QQ登录

只需一步,快速开始

dexteryao 讲师达人认证 悬赏达人认证 SpreadJS 开发认证

超级版主

123

主题

8927

帖子

1万

积分

超级版主

Rank: 8Rank: 8

积分
13536

讲师达人悬赏达人元老葡萄SpreadJS 认证SpreadJS 高级认证微信认证勋章

dexteryao 讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-5-31 16:53  /   查看:3004  /  回复:3
SpreadJS和在线表格编辑是按照容器host的大小进行初始化。在某些场景下会使用百分比或者flex布局,让控件根据页面大小按比例初始化。当页面大小发生变化时,SpreadJS会监听window的resize,进行刷新重会
image.png387957152.png
但是当页面有可动态调整大小的边栏时候,并不会触发resize,这时候就需要主动调用refresh方法刷新
对于设计器调用designer.refresh(),Spread JS调用workbook.refresh()。
这个调用发生在页面布局调整之后,建议加上setTimeout保证页面布局已经完成。
image.png719779967.png
如果使用了框架,页面布局的调整并不容易监听,组件之间的通信业比较麻烦,对于这种场景可以主动出发window的resise,让spread刷新

  1. setTimeout(function(){
  2.       window.dispatchEvent(new Event('resize'));
  3.           },700)
复制代码


2 个回复

倒序浏览
Mr.bo
注册会员   /  发表于:2021-12-10 16:45:56
沙发
我是把sjs插件放到了Modal里,本来无法正常渲染的,看了帖子使用resize事件解决了,非常感谢!
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-12-10 16:52:54
板凳
Mr.bo 发表于 2021-12-10 16:45
我是把sjs插件放到了Modal里,本来无法正常渲染的,看了帖子使用resize事件解决了,非常感谢!

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