找回密码
 立即注册

QQ登录

只需一步,快速开始

qubernet

初级会员

24

主题

59

帖子

213

积分

初级会员

积分
213
qubernet
初级会员   /  发表于:2018-12-25 14:19  /   查看:3468  /  回复:7
使用var chart = sheet.charts.add('Chart1') 可以声明一个名称为Chart1的图表实例,是否有方法可以检查Chart1是否被声明?

7 个回复

倒序浏览
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2018-12-25 15:29:09
沙发
检查chart被声明? 您是指这个chart是否有初始化事件还是?

我这样问,您检查了chart被声明后准备做哪些操作呢?麻烦您描述一下您的需求场景。
回复 使用道具 举报
qubernet
初级会员   /  发表于:2018-12-25 15:36:31
板凳
KevinChen 发表于 2018-12-25 15:29
检查chart被声明? 您是指这个chart是否有初始化事件还是?

我这样问,您检查了chart被声明后准备做哪些 ...

使用场景是这样的:1、初始化表单1,表单1中初始化了一个图表Chart1;
2、表单1中在相应的单元格中把数据输入进去后,统计图就显示出来了;
3、这时候把整个模板导出为JSON字符串,并传输到后台保存到数据库中;


4、关键点问题来了,下次初始化这个模板(从后台数据库中读取出来)时,要去检查表单1中是否已经初始化了Chart1这个图表,以免SpreadJS提示“已经有一个xxxx图表了”这类的错误。


如果有这个检查的方法,就不用再次初始化图表事件了。
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2018-12-25 17:08:08
地板
您好,感谢您的描述。

根据您描述的情况,我给您推荐的解决方案是挂一个浮动对象加载事件,代码示例如下:

  1. spread.bind(GC.Spread.Sheets.Events.FloatingObjectLoaded, function (s, e) {
  2.     console.log(e);
  3. });
复制代码


这样您的chart在加载完毕后会触发这个事件,您可以在事件中进行进一步的操作。
回复 使用道具 举报
qubernet
初级会员   /  发表于:2018-12-26 11:43:43
5#
KevinChen 发表于 2018-12-25 17:08
您好,感谢您的描述。

根据您描述的情况,我给您推荐的解决方案是挂一个浮动对象加载事件,代码示例如下 ...

您好,FloatingObjectLoaded这个浮动对象加载事件是针对素有类型的浮动对象都起作用?
也就是说,比如某个表单中有图表、有自定义的一些浮动对象,是否是所有浮动对象都加载完了才执行还是每个浮动对象加载完都要分别执行呢?
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2018-12-26 12:04:09
6#
您好,这个事件是在每个浮动对象加载时都会触发一次,针对所有类型的浮动对象都有作用,

您可以在事件中获取到相关的浮动对象信息,针对性地进行您的操作。

我给您上传一个现成的Demo,您可以参考一下。

EChartsWithSpreadJS.zip

101.97 KB, 下载次数: 79

回复 使用道具 举报
qubernet
初级会员   /  发表于:2018-12-26 13:10:42
7#
KevinChen 发表于 2018-12-26 12:04
您好,这个事件是在每个浮动对象加载时都会触发一次,针对所有类型的浮动对象都有作用,

您可以在事件中 ...

OK,谢谢您的方案!
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2018-12-26 15:17:46
8#
qubernet 发表于 2018-12-26 13:10
OK,谢谢您的方案!

不客气,希望能够帮您解决问题。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部