echarts html ajax,ECharts+Ajax动态加载数据实例(.NET)
什么是ECharts
ECharts 是一个数据可视化工具,提供了系列常用图表,底层基于ZRender(一个全新的轻量级canvas类库),创建了坐标系,图例,提示,工具箱等基础组件,并在此上构建出折线图、柱状图、散点图、K线图、饼图、雷达图、地图、和弦图、力导向布局图、仪表盘以及漏斗图,同时支持任意维度的堆积和多图表混合展现。用ECharts展示数据很美观,而且官方文档非常详细,入手很快。
那么如何在ECharts中灵活使用Ajax获取数据呢。仔细看一下官方文档可以发现对象option的数据格式和JSON相似度很高。所以可以很方便的使用JSON格式数据。
什么是JSON
JSON是一种与开发语言无关的轻量级的数据格式,全称是JavaScript Object Notation。
标准格式:key:value 键值对
数据结构:对象和数组
Object(对象):使用花括号包含的键值对结构,key必须是string类型,value为任何基本类型或数据结构。
Array(数组):使用中括号,并用逗号分隔元素。
简单JSON数据示例:
{
"key":"value",
"name":"王小二", //字符串
"age":20, //数字
"has_girlfriend":false, //boolean
"major":["理发","挖掘机"], //数组
"签名":NULL //null
}
{
"学生甲":{
"高数":100 //对象
"算法":100
},
"学生乙":{
"高数":90
"算法":90
}
}
柱状图实例
Step1:首先学习柱状图的使用,模仿ECharts官方文档中的柱状图的例子写一个.html页面,此时数据是直接写在前端页面中,成功之后继续下一步,改写为使用JSON格式数据。
Step2:我们需要通过Ajax动态获取后台的数据,抛弃前端写死的数据(拿Series属性中的数据举例),通过Ajax接口获取后台提供的数据。使用的服务器端技术为.NET.在.NET中新建一个普通的histogram.ashx页面,首先需要定义一个series类,设置series序列的基本属性name、type、data,data为数组因此定义为List<>List数据类型根据需要可以定义为double,string。
///
///定义一个Series类,设置其每一组的一些基本属性
///
///
class Series
{
public string name
{
get;
set;
}
public string type
{
get;
set;
}
public List data
{
get;
set;
}
}
Step3:定义一个函数ShowChart(),实例化一个Series类,并将其转化为JSON格式数据,需要添加引用Newtonsoft.Json.dll。
private void ShowChart()
{
/*Series序列数据*/
List seriesList = new List();
Series series1 = new Series();
series1.name = "蒸发量";
series1.type = "bar";
series1.data = new List() { 22, 55, 63,44,15,45,60,10,50 };
Series series2 = new Series();
series2.name = "降雨量";
series2.type = "line";
series2.data = new List() { 10, 50, 24, 53, 40, 30, 10, 52, 22 };
Series series3 = new Series();
series3.name = "温度";
series3.type = "line";
series3.data = new List() { 5, 6, 4, 2, 8, 10, 0, 21, 20, 15, 12 };
Series series4 = new Series();
series4.name = "Temperature";
series4.type = "bar";
series4.data = new List() { 8, 6, 8, 1, 2, 8, 3, 12, 5, 8, 15 };
seriesList.Add(series1);
seriesList.Add(series2);
seriesList.Add(series3);
seriesList.Add(series4);
var newObj = new
{
//返回给前端页面的数据
series = seriesList,
xAxis = xData
};
string strJson = ToJson(newObj);
WriteJson(strJson);
}
public static string ToJson(object obj)
{
return NewtosoftJson(obj);
}
public static string NewtosoftJson(object obj)
{
return Newtonsoft.Json.JsonConvert.SerializeObject(obj,Newtonsoft.Json.Formatting.None);
}
public static void WriteJson(string str)
{
HttpContext.Current.Response.Write(str);
HttpContext.Current.Response.End();
}
public bool IsReusable {
get {
return false;
}
}
Step4:前端使用Ajax获取数据。在标签中添加
$.ajax({
type: 'post', //发送请求类型为POST
url: 'histogram.ashx?action=ShowChart', //请求页面的URL,此页面即为上面所述提供JSON数据的页面,传递参数ShowChart,后台解析并调用相应的函数
data: {},
dataType: 'json', //请求数据类型为JSON
async: true, //是否为异步加载,true为异步,false为同步
success: function (result) { //请求成功:result为后台返回数据
if (result) {
option.series = result.series;//将得到的数据赋值给option的Series属性
myChart.setOption(option);
}
},
error: function () { //请求失败
alert("Error");
}
});
Step5:服务器端接收Http请求并响应,.NET中提供了IHttpHandler接口,允许对Http请求行编程,重写ProcessRequest方法,HttpContext是一个重要的上下文对象,这里为请求中传递的参数ShowChart,在此方法中进行解析,并调用相应的函数进行处理,并将返回数据。
public class histogram : IHttpHandler {
public void ProcessRequest (HttpContext context) {
string action = context.Request.QueryString["action"];
switch (action)
{
case "ShowChart":
ShowChart();break;
}
}
//此处应为上述中ShowChart()函数代码以及类的定义
}
然后就大功告成了,属性xAxis、yAxis等中的数据也可以以同样的方式进行获取。在本例中数据从前台转移到了后台代码中,如果需要存储数据的数据库中有选择性的获取,.NET连接数据库,读取数据返回即可。
最后上图
Echarts柱状图.PNG
echarts1.gif
echarts2.gif
很重要的备注:
参考博客:万水千山走遍
网址:ECharts官网
echarts html ajax,ECharts+Ajax动态加载数据实例(.NET)相关推荐
- ECharts动态加载数据绘制折线图
Echarts动态加载数据绘制折线图 ECharts 引入ECharts 步骤 连接数据接口,动态加载图表 动态加载数据,整体代码 折线图绘制 总结 绘制多个图表的方法 ECharts 纯Javasc ...
- echarts动态加载数据生成饼状图
本文简单介绍使用ajax从JSON文件加载数据,动态生产并状态,第一次写,供大家参考.欢迎大家提出优化意见和建议. 一下是前端的代码: <!DOCTYPE html> <html l ...
- echarts java动态数据_[ASP.net教程]ECharts Java 动态加载数据,echartsjava
[ASP.net教程]ECharts Java 动态加载数据,echartsjava 0 2015-12-18 00:00:05 1.前台jsp页面html PUBLIC "-//W3C// ...
- python爬虫之Ajax动态加载数据抓取--豆瓣电影/腾讯招聘
动态加载数据抓取-Ajax 特点 1.右键 -> 查看网页源码中没有具体数据 2.滚动鼠标滑轮或其他动作时加载 抓取 1.F12打开控制台,页面动作抓取网络数据包 2.抓取json文件URL地址 ...
- AJAX jQuery tab,动态加载选显卡
AJAX jQuery tab,动态加载选显卡 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ...
- 爬虫Spider 05 - 代理参数-proxies | 控制台抓包 | requests.post() | 动态加载数据抓取-Ajax
文章目录 Spider 04回顾 requests.get()参数 常见的反爬机制及处理方式 Spider 05笔记 代理参数-proxies **控制台抓包** **requests.post()参 ...
- 微信小程序使用Echarts图表组件,动态加载数据,图表模糊处理
1:下载 GitHub 上的项目 https://github.com/ecomfe/echarts-for-weixin 2:项目下载之后,打开小程序开发工具,可以看到效果如下 3:如果是在项目里面 ...
- php ajax 加载列表,Ajax点击不断加载数据列表(图文教程)
这篇文章主要介绍了Ajax点击不断加载数据列表的相关资料,需要的朋友可以参考下 Ajax简介 AJAX即"Asynchronous Javascript And XML"(异步Ja ...
- 百度echart柱图、折线图、饼图、Map类型等类似视图的动态加载数据
这几天接触的一个项目需要使用到百度的echart,所以简单查找并实验了几款比较简单且适用性较广的例子,做了几个简单的Demo,一来是对echart有所了解,二来也是记录一下,方便以后进一步的优化. 首 ...
最新文章
- java mission 篡改后 网速很慢_关于直连网线速度正常,插上路由器后速度变慢的解决方法{不全面}...
- session过期跳转到登陆页面并跳出iframe框架的最简单方法
- JS中基本数据类型和引用类型最根本的区别
- Minimum Diameter Tree
- [旧博客]Python 第一次
- 【知识】人工智能数学基础知识
- java.lang.ClassCastException: $Proxy8 cannot be cast to org.hihernate.lob.SerialzableClob
- [翻译]Visual Odmetry from scratch - A tutorial for beginners
- Spring Boot官方文档笔记
- scipy安装_4. Python--Scipy库(下/13-17)
- 计算机五笔打字口诀,学电脑五笔打字-不用背口诀-5分钟轻松学会五笔打字-快来试试吧!.doc...
- Curl转python在线工具
- arduino实验日记
- 什么是3D游戏建模?成为一个游戏建模师需要具备哪些能力?
- 金仓数据库KingbaseES运维工具参考手册(5. 辅助运维工具)
- 设计期权套期保值方案时应注意的问题
- ask fsk psk 数字调制的三种基本形式
- 【转载】C语言,利用网络短信验证码接口实现手机短信发送
- 随手查——Lumerical
- 手游连接无线后提示无网络连接服务器,圣斗士星矢手游网络连接失败进不去解决方法...
热门文章
- c语言实训的总目的意义,C语言实训总结
- offsetLeft和offsetTop怎么用
- SPB 17.0 problem - No product licenses found,exiting.Useprogram问题解决方法
- Ubuntu16.04无声音问题解决及网页视频无法播放问题解决
- 腾讯QQ大数据:相关推荐之反浩克装甲
- PyQt——QGroupBox
- mmread、mmplay 用法
- 我的python爬虫学习之路
- R语言基于ems包标准化死亡率 (SMR)计算(1)
- Windows 7 字体常见问题及解决方法