今天主要探讨下,数据文件的生成方式,只做探讨。

其实funsioncharts提供了多种数据展现方式,除了前一节采用的直接的DATAFile的方式外,还有官方提供的标准的c#实现方式。

看个截图

但是总感觉使用官方提供的InfoSoftGlobal不是很灵活,同时由于在前端的js调用已经做了很大的封装,调用只需要3行代码而已。于是我就考虑能否按照自己的思路封装一个可以在项目中灵活调用的工程。

目标要求:

1. 尽量减少服务器端开销

2. 调用简便

3. 扩充容易

于是自己写了一个,先说下基本思路

定义一个charts类,里面包含columns lines area pie 等,与funsioncharts提供的图表类型吻合,然后再类中定义一堆的属性,与官方帮助文档中提供的属性对应,然后定义一组方法,来实现把数据生成指定的XML格式(因为不同的图表类型的xml格式不一致,所以需要在不同的类中实现)。

调用采用前台调用方式,通过js的dataXML方式提供数据

这是一个官方提供的dataXML方式的工作原理。这里只是对①进行了重新封装而已。

下面是工程中的两个截图

下面

前端调用的例子:

 1 protected void Page_Load(object sender, EventArgs e)
 2     {
 3         if (!Page.IsPostBack)
 4         {
 5             IOther other = PageEngine.CreateOther();
 6             DataSet dsMenu = other.GetUserExtInfo(studentinfo.UserID);
 7             LitMenu.Text = Tools.GetMenuList(dsMenu);
 8             
 9             
10             ILearn l = PageEngine.CreateLearn();
11             DataSet ds = l.GetLosePercentByAge();
12 
13             Column column = new Column();
14             column.BaseFont = "宋体";
15             column.BaseFontSize = "12";
16             column.LogoURL = "/images/logo.gif";
17             column.LogoAlpha = "30";
18             column.UseRoundEdges = "1";
19             column.Caption = " 各年龄段学生流失率统计";
20             column.NumberSuffix = "%";
21             column.XAxisName = "年龄段";
22             column.YAxisName = "流失率";
23 
24             string ScriptStr = @"var chart1 = new FusionCharts('http://www.cnblogs.com/Charts/Column3D.swf', 'chart1Id', '600', '400', '0', '1');";
25             ScriptStr += "chart1.setDataXML(\"" + column.ColumnsToSingleCharts(ds, column) + "\");";
26             ScriptStr += "chart1.render('chartview');";
27             ClientScript.RegisterStartupScript(ClientScript.GetType(), "Myscript", ScriptStr, true);
28 
29             var strjson = Tools.GetJsonFromDataTable(ds.Tables[0]).ToString();
30 
31             json.Text = strjson;
32 
33         }
34     }
35 

优点:

1.               可以在前台灵活控制需要表现的图表形式,在我的工程中,设计了可以在前台由用户灵活切换显示的图表类型

2.               通过属性的处理方式,可以在前台编码过程中,清晰获得类的具体属性。比如显示柱状图的时候,在column.XAxisName的时候可以tool-tip出XAxisName的含义注意事项,给前台编码人提供很大方便,实现了前端和后台类库的分离

3.

string ScriptStr = @"var chart1 = new FusionCharts('http://www.cnblogs.com/Charts/Column3D.swf', 'chart1Id', '600', '400', '0', '1');";

这里后来做了优化,因为2D和3D调用的swf文件不同,封装了一个方法,自动获得需要调用的swf文件

由于现在工程是08的,换了新Comp后工程只有03和05,现在工程转换还有点问题,在教程的最后我会提供一个完整的例子,先卖个关子,这里留待大家思考。

FusionChart完全入门手册 -2相关推荐

  1. FusionChart完全入门手册8

    动画样式类型 FusionCharts做得最好的事情之一就是图表动画序列,这是用户静静乐道的.默认情况下,FusionCharts仅在数据绘制(柱状图.饼图.折线图等)时候使用动画.但是FusionC ...

  2. AI产品经理入门手册(下)

    近两年来AI产业已然成为新的焦点和风口,各互联网巨头都在布局人工智能,不少互联网产品经理也开始考虑转型AI产品经理,本文作者也同样在转型中.本篇文章是通过一段时间的学习归纳总结整理而成,力图通过这篇文 ...

  3. rocketmq 顺序消费_必须先理解的RocketMQ入门手册,才能再次深入解读

    推荐阅读一下下 2020年后想跳槽?MQ.ZK.Nginx.Kafk等分布式技术你都掌握了? 阿里架构师推荐学习的<RabbitMQ实战指南>,渣渣的你都看过吗? RocketMQ入门手册 ...

  4. 推荐算法炼丹笔记:CTR点击率预估系列入门手册

    ​CTR点击率预估系列家谱 炼丹之前,先放一张CTR预估系列的家谱,让脉络更加清晰. (一)FiBiNET:结合特征重要性和双线性特征交互进行CTR预估 1.1 背景 本文发表在RecSys 2019 ...

  5. React 入门手册

    大家好,我是若川.推荐这篇可收藏的React入门手册.也推荐之前一篇类似的文章<如何使用 React 和 React Hooks 创建一个天气应用>. 点击下方卡片关注我.加个星标 Rea ...

  6. rocketmq 订阅组_必须先理解的RocketMQ入门手册,才能再次深入解读

    推荐阅读一下下 2020年后想跳槽?MQ.ZK.Nginx.Kafk等分布式技术你都掌握了? 阿里架构师推荐学习的<RabbitMQ实战指南>,渣渣的你都看过吗? RocketMQ入门手册 ...

  7. Tablestore入门手册-UpdateRow接口详解

    表格存储Tablestore入门手册系列主要介绍表格存储的各个功能接口和适用场景,帮助客户了解和使用表格存储Tablestore.本文对表格存储Tablestore的UpdateRow接口进行介绍,包 ...

  8. 林锐 高质量c语言编程下载,新年献礼:Go语言深度入门手册

    (文末的阅读原文,效果最佳!) 作者:李佶澳 微信:lijiaocn Go 语言深度入门手册,帮你更好的理解 Go 语言,写出更高效.更规范.更不易出错的代码. Go 在 2012 年发布 1.0 版 ...

  9. 支付宝前端推出《Web前端开发入门手册》

    web前端教程 用大白话,来讲编程 近日,支付宝前端团队写的<Web前端开发入门手册>对外公开了,原本是用于内部培训使用,现在对外公开了. 这本手册是初学者的福音,它的受众群体是前端小白, ...

最新文章

  1. 下一个全球电子通道系统,一定是BCH!
  2. python返回序列中的最小元素_python实现获取序列中最小的几个元素
  3. ASP.NET MVC 重写RazorViewEngine实现多主题切换
  4. nginx 学习笔记(1) nginx安装
  5. google套件_Google 推出 3 款语音识别应用,想用 AI 帮语言障碍者说话
  6. 研发和人力资源发展模式对比研究
  7. python数据类型之元组类型
  8. python模块下载连接清华镜像的具体步骤_anaconda | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror...
  9. 转变思维!采用稀疏化加速 YoloV3 模型!省了 GPU !
  10. 【Hbase】HBase分布式安装
  11. 【Oracle】三种方式查看SQL语句的执行计划
  12. Spring Boot 的 GraphQL 框架DGS
  13. 苹果Mac记事本中快速计算应用:Soulver
  14. 电信光猫の破解使用路由
  15. 人脸生成黑科技:实现人脸转变特效,让人脸自动戴墨镜
  16. php 变量加的作用是什么,php变量的定义和作用是什么 - php完全自学手册 - php中文网手册...
  17. java 上传文件接口_Java接口实现文件上传
  18. Ionic开发框架的安装及Ionic项目的创建
  19. CW测速雷达原理介绍
  20. 一天狂点3.7万个赞! 男子因“点赞过多”被大众点评网处罚 法庭上吵翻

热门文章

  1. 匿名用户访问用发布站点模板创建网站的列表项时要求登录的问题解决
  2. java 注解数组初始化_Java 之 注解的定义
  3. php行为日志,利用ThinkPHP的行为扩展做系统日志
  4. java 获取六个月账期,应收帐龄分析里面账期分析能不能改为0-30天?
  5. mysql rename所标时间_mysql rename命令
  6. 钉钉微应用怎么进入_蓝凌携手钉钉走进越秀地产,零距离热聊企业数字化转型...
  7. C++提取PDF页成BMP图片
  8. JAVA面试题------------final 关键字是干什么用的?谈谈你的理解。
  9. Android高版本开机广播,android3.1以上,假如程序没有启动过,怎么获取开机广播呢?...
  10. java项目001.双色球游戏