找回密码
 立即注册

QQ登录

只需一步,快速开始

湖南大商帮

初级会员

48

主题

162

帖子

486

积分

初级会员

积分
486
湖南大商帮
初级会员   /  发表于:2021-6-7 11:45  /   查看:2377  /  回复:5
如果,spreadJS所在的容器是flex容器,而且全部是自动高度,宽度,这个时候,spreadJS就完全显示不出来了,咋办?因为业务需求spreadJS必须自适应父容器宽高的

5 个回复

倒序浏览
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-6-7 12:12:00
沙发
本帖最后由 Derrick.Jiao 于 2021-6-7 12:13 编辑

完全显示不出来具体是如何表现呢?SpreadJS的大小跟着承载他的容器走的。您可以尝试调用spread.refresh();刷新。本质上来说SJS只是一个dom节点,无法自适应容器的这个问题SJS自身设计无关。建议您再查阅下flex布局相关的资料。若仍未解决您的问题,麻烦您提供一个demo这边调研一下。
回复 使用道具 举报
湖南大商帮
初级会员   /  发表于:2021-6-7 17:24:45
板凳
本帖最后由 湖南大商帮 于 2021-6-7 17:25 编辑

问题解决了,父容器是flex,子容器是spreadJS的话,需要指定spreadJS的宽度,高度为100%
  1. <gc-spread-sheets class="gc-spreadSheets">
  2.         <gc-worksheet ref="xmgcSheet">
  3.         </gc-worksheet>
  4.     </gc-spread-sheets>

  5. .gc-spreadSheets {
  6.   min-height:100%;width:100%;
  7. }
复制代码

评分

参与人数 1金币 +666 收起 理由
Derrick.Jiao + 666 感谢提供思路

查看全部评分

回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-6-7 17:31:42
地板
湖南大商帮 发表于 2021-6-7 17:24
问题解决了,父容器是flex,子容器是spreadJS的话,需要指定spreadJS的宽度,高度为100%

解决了就好,有新问题欢迎开新帖交流~
回复 使用道具 举报
湖南大商帮
初级会员   /  发表于:2021-6-17 10:56:40
5#
这个问题的终极解决办法我已经找到了:
1.父容器是flex
2.spread自身的div也设置成flex,然后指定flex:1;width:100%;height:100%;
3.workbookInitialized的时候,弄个全局数组push一下spread对象
3.当鼠标去拖拉页面父容器的高宽比 动作结束后,主动触发window.resize事件
4.当页面acitved的时候,循环数组,主动调用 spread.refresh()方法,即可

评分

参与人数 1金币 +666 收起 理由
Derrick.Jiao + 666 很给力!

查看全部评分

回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-6-17 11:00:01
6#
湖南大商帮 发表于 2021-6-17 10:56
这个问题的终极解决办法我已经找到了:
1.父容器是flex
2.spread自身的div也设置成flex,然后指定flex:1; ...

感谢您的分享,如果能附上对应的demo就更好了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部