Fusioncharts和Ext都是强大的前台展现技术,虽然可以一起使用,但总感觉很别扭。

一般的做法是先new Fusioncharts()创建一个图,并且使用render()渲染到一个div里

然后Ext的panel组件使用contentEl把盛图的div放进来.这样做虽然可以,但是经常会出现一些问题.

现在发现的问题:

1.同一个图不能更换swf。

2.使用选项卡时,没渲染过的图不能更新,必须挨个跳一遍。

3.对图形更新时,由于使用的setDataUrl(),参数是get方式传递,如果参数过多会有问题。

4.每个图还需要写放图的div,很麻烦。

5.不能像Ext组件一样随意布局和调整属性。

6.等等。

考虑这些缺点,如果把fusioncharts封装成ext的一种panel组件,

利用baseParams收集参数,可通过ajax-post提交向后台请求xml,

调用fusioncharts自己的setDataXML()对图形进行显示。

对于选项卡必须挨个跳一遍的问题,由于自己可以判断panel是否渲染过,可以选择先把xml数据存放在一个临时的属性里,

渲染时再把最新的xml拿出来即可。

对于动态换图形swf,由于一个panel对应一个图,swf应该只是panel的一个属性,每次panel渲染时会根据swf属性创建图形。

最重要的是,作为一个Ext-panel,放到弹出窗口,提示窗,选项卡里肯定都行,布局起来就非常方便了。

只要放到items:[]里面就能用,如果用xtype就更方便了

以下就是在window里面包含一个panel面板。动态生成html。

function fchart{
 var feeStatisticPanel = new Ext.Panel({
       html : "<div id='chart1'></div>"
 });

var feeStatisticGraphWin = new Ext.Window({
    frame : true,
    width : 416,
    height : 333,
    title : "费用统计图",
    shadow : true,
    modal : true,
    items : [feeStatisticPanel]
});

feeStatisticGraphWin.show();

var string="";
 //string用来保存FusionCharts的XML格式及数据。

var myChart= new FusionCharts(
   basePath+"/portal/assets/FusionCharts/swfs/MSLine.swf?ChartNoDataText=no data",
   "myChartId", "600", "400", "0", "0");
  myChart.setTransparent(true);
  myChart.setDataXML(string);
  myChart.render("chart1");
  
};

把Fusioncharts封装成Ext组件的思路 及实现相关推荐

  1. 把Fusioncharts封装成Ext组件的思路

    Fusioncharts和Ext都是强大的前台展现技术,虽然可以一起使用,但总感觉很别扭. 一般的做法是先new Fusioncharts()创建一个图,并且使用render()渲染到一个div里 然 ...

  2. monaco-editor基本使用以及monaco-editor封装成vue组件

    文章目录 一.monaco-editor基本使用 二.monaco-editor封装成vue组件 一.monaco-editor基本使用 以vue2项目为例 安装依赖 npm i monaco-edi ...

  3. android 按钮点击动画效果_如何用纯css打造类materialUI的按钮点击动画并封装成react组件...

    作为一个前端框架的重度使用者,在技术选型上也会非常注意其生态和完整性.笔者先后开发过基于vue,react,angular等框架的项目,碧如vue生态的elementUI, ant-design-vu ...

  4. Vue使用wangEditor 封装成独立组件实现富文本编辑器

    1.使用npm安装: npm install wangeditor 2.将编辑器封装一个组件,创建editor.vue组件: <template><div id="edit ...

  5. vue中怎样实现弹出层动画效果?由上而下渐渐显示---封装成复用组件

    子组件: <template><div class="home"><!-- 首先将要过渡的元素用transition包裹,并设置过渡的name --& ...

  6. vue 封装dialog_element-dialog封装成子组件

    移除 {{Edit}} import UserEditfrom "./UserEdit-dialog.vue"; import updatefrom './Update.vue'e ...

  7. 封装element分页组件

    项目场景: 将 element-ui 中分页封装成公共组件 描述: admin后台中会有很多的表格以及分页的应用,所以考虑将分页分装成公共组件 <!--封装组件 vue页面--> < ...

  8. 纯生js ajax,纯生js实现Element中input组件的部分功能(慢慢完善)并封装成组件

    现在实现的有基础用法.可清空.密码框,参考链接:https://element.eleme.cn/#/zh-CN/component/input HTML代码:想要测试哪个组件,直接将对应组件解开注释 ...

  9. react antd confirm content list_React造轮系列:对话框组件 - Dialog 思路

    React造轮系列:对话框组件 - Dialog 思路 对话框一般是我们点击按钮弹出的这么一个东西,主要类型有 Alter, Confirm 及 Modal, Modal 一般带有半透明的黑色背景.当 ...

最新文章

  1. win10 4步快速安装vue
  2. 虚拟化方案应用场景及优劣
  3. node.js 爬虫中文乱码 处理
  4. hpuoj--1093: 回文数(一)
  5. 什么是实验室人员比对人员_CNAS实验室认可对人员、设备的要求
  6. 词频统计的java实现方法——第一次改进
  7. linux将a文件移动到bb,linux中vi整理全集(基础)
  8. 作死把mysql root用户的权限给去掉了或者忘记密码了怎么办
  9. 斜杠“/”与反斜杠“\”的区别
  10. 维护2G网络的稳定必须提升到战略高度
  11. THINKPADT400安装XP蓝屏
  12. 追光的人beta冲刺总结
  13. 计算机基础使用操作培训ppt,计算机基础操作培训课件ppt课件.ppt
  14. 最优化问题的Matlab优化工具箱求解总结
  15. IOS设备恢复模式和DFU模式 区别、进入方法
  16. 用于自动化测量数据评估的ASAM ODS分析服务器集成
  17. MySQL修改表的字段
  18. 两年嵌入式总结--面试
  19. python 图片生成视频 moviepy_MoviePy
  20. 1290 越狱(逆向思维-快速幂)

热门文章

  1. 电视升级鸿蒙系统,网友升级了鸿蒙系统,各项体验都很不错,终于有了自己的系统...
  2. Linux串口测试工具
  3. ubuntu18.04安装搜狗中文输入法
  4. D28 1000瓶药中找出一瓶毒药,10只老鼠做试验
  5. 量子力学奇妙之旅-算符/薛定谔方程/概率流密度
  6. Schiff Move Free维骨力这个牌子的保健效果怎么样,是要给中老年人群服用的
  7. 重返月球,铺路火星:2024年首位女性登月,280亿美元开启太空探索新纪元-1
  8. Python——二进制8位加法器(采用手算二进制加法的过程实现)(tkinter实现)【2021-07-08】
  9. 【宝塔面板建站】10分钟windows宝塔面板一键部署安装wordpress,无需服务器和域名本地运行(保姆级图文)
  10. 在u盘运行linux系统软件,主编帮你xp系统利用U盘直接运行Linux软件 的步骤【图】...