赞
踩
百度echarts开发插件包下载地址:http://download.csdn.net/detail/taomanman/8850699
- <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="EchartDemo.aspx.cs" Inherits="AT.Web.Demo.EchartDemo" %>
-
- <!DOCTYPE html>
-
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head runat="server">
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>Echart图表示例</title>
- <script src="../Themes/Scripts/jquery-1.8.2.min.js"></script>
- <link href="../Themes/Styles/Site.css" rel="stylesheet" type="text/css" />
- <script src="../Themes/Scripts/FunctionJS.js" type="text/javascript"></script>
- <script type="text/javascript">
- //初始化
- $(function () {
- $('#table2').hide();
- })
- //点击切换面板
- var IsFixedTableLoad = 1;
- function panel(obj) {
- if (obj == 1) {
- $('#table1').show();
- $('#table2').hide();
- } else if (obj == 2) {
- $('#table1').hide();
- $("#table2").show();
- }
- }
- </script>
- </head>
- <body>
- <form id="form1" runat="server">
- <div class="frmtop">
- <table style="padding: 0px; margin: 0px; height: 100%;" cellpadding="0" cellspacing="0">
- <tr>
- <td id="menutab" style="vertical-align: bottom;">
- <div id="tab0" class="Tabsel" οnclick="GetTabClick(this);panel(1)">
- 能耗动态
- </div>
- <div id="tab1" class="Tabremovesel" οnclick="GetTabClick(this);panel(2);">
- 填报动态
- </div>
- </td>
- </tr>
- </table>
- </div>
- <div class="div-frm" style="height: 275px;">
- <%--能耗动态--%>
- <div id="table1">
- <div id="divEnergy" style="width: 610px; height: 220px;"></div>
- </div>
- <%--填报动态--%>
- <div id="table2">
- <div id="divReport" style="width: 750px; height: 250px;"></div>
- </div>
- </div>
- </form>
- </body>
- </html>
- <script src="../Themes/Scripts/echarts/echarts.js"></script>
- <script src="../Themes/Scripts/echarts/theme/macarons.js"></script>
- <script type="text/javascript">
- var cityClick = '';
- function GetUnitEnergy(unitName) {
- GetCityEnergy(unitName, 2);
- }
- require.config({
- paths: {
- echarts: '../Themes/Scripts/echarts'
- }
- });
- require(
- [
- 'echarts',
- 'echarts/chart/bar',
- 'echarts/chart/line',
- 'echarts/chart/pie',
- 'echarts/chart/funnel'
- ],
- DrawEChart //异步加载的回调函数绘制图表
- );
- var myEnergyChart;
-
- var myReportChart;
-
- //创建ECharts图表方法
- function DrawEChart(ec) {
- //--- 折柱 ---
- myEnergyChart = ec.init(document.getElementById('divEnergy'), macarons);
- //定义图表options
- var options = {
- title: {
- text: "",
- subtext: ""
- },
- /*color: ['#0099FF', '#00CC00', '#008080', '#CC6600', '#CC00CC', '#0033CC','#003300', '#FF0000'],*/
- tooltip: {
- trigger: 'axis'
- },
- legend: {
- data: [" "]
- },
- toolbox: {
- show: true,
- feature: {
- mark: { show: false },
- dataView: { show: false, readOnly: false },
- magicType: { show: true, type: ['line', 'bar'] },
- restore: { show: true },
- saveAsImage: { show: false }
- }
- },
- grid: {
- x: 60,
- y: 30,
- x2: 5,
- y2: 30
- },
- calculable: true,
- xAxis: [
- {
- type: 'category',
- data: [" "]
- }
- ],
- yAxis: [
- {
- type: 'value',
- axisLabel: {
- fomatter: "."
- },
- splitArea: { show: true }
- }
- ],
- series: [{
- name: " ",
- type: "line",
- data: [0]
- }]
- };
- //选择一个空图表
- myEnergyChart.setOption(options);
- myReportChart = ec.init(document.getElementById('divReport'), macarons);
- //选择一个空图表
- myReportChart.setOption(options);
-
- // 默认加载填报
- GetReport("1");
- // 默认加载省直
- GetUnitEnergy('34');
- }
-
-
- ///点击按钮获取图表数据采用ajax方式
- function GetCityEnergy(cityCode, level) {
- //获得图表的options对象
- var options = myEnergyChart.getOption();
- //通过Ajax获取数据
- $.ajax({
- type: "post",
- async: false, //同步执行
- url: "GetChartData.aspx?type=energyData",
- dataType: "json", //返回数据形式为json
- success: function (result) {
- if (result) {
- //将返回的category和series对象赋值给options对象内的category和series
- //因为xAxis是一个数组 这里需要是xAxis[i]的形式
- options.xAxis[0].data = result.category;
- options.series = result.series;
- options.legend.data = result.legend;
- myEnergyChart.setOption(options);
- myEnergyChart.refresh();
- }
- },
- error: function (errorMsg) {
- alert("图表数据加载失败!");
- }
- });
- }
-
- ///点击按钮获取图表数据采用ajax方式
- function GetReport(code) {
- //获得图表的options对象
- var options = myReportChart.getOption();
- //通过Ajax获取数据
- $.ajax({
- type: "post",
- async: false, //同步执行
- url: "GetChartData.aspx?type=reportData",
- dataType: "json", //返回数据形式为json
- success: function (result) {
- if (result) {
- //将返回的category和series对象赋值给options对象内的category和series
- //因为xAxis是一个数组 这里需要是xAxis[i]的形式
- //myReportChart.clear();
- options.xAxis[0].data = result.category;
- options.series = result.series;
- options.legend.data = result.legend;
- myReportChart.setOption(options);
- }
- },
- error: function (errorMsg) {
- alert("图表数据加载失败!");
- }
- });
- }
-
- //初始加载图表数据
- $(function () {
- GetCityEnergy("", "");
- GetUnitEnergy("");
- });
- </script>
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Web;
- using System.Web.UI;
- using System.Web.UI.WebControls;
-
- namespace AT.Web.Demo
- {
- public partial class EchartDemo : System.Web.UI.Page
- {
- protected void Page_Load(object sender, EventArgs e)
- {
-
- }
- }
- }
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="GetChartData.aspx.cs" Inherits="AT.Web.Demo.GetChartData" %>
- using Newtonsoft.Json;
- using System;
- using System.Collections.Generic;
- using System.Data;
- using System.Data.SqlClient;
- using System.Linq;
- using System.Web;
- using System.Web.UI;
- using System.Web.UI.WebControls;
-
- namespace AT.Web.Demo
- {
- public partial class GetChartData : System.Web.UI.Page
- {
- protected void Page_Load(object sender, EventArgs e)
- {
- string type = Request["type"];
- if (!string.IsNullOrEmpty(type))
- {
- switch (type)
- {
- case "energyData":
- GetEnergyDataAjaxData("", "");
- break;
- case "reportData":
- GetReportDataAjaxData("");
- break;
- }
- }
- }
-
- /// <summary>
- /// 获得数据且用Json格式数据返回
- /// </summary>
- private void GetEnergyDataAjaxData(string level, string code)
- {
- //考虑到图表的category是字符串数组 这里定义一个string的List
- List<string> categoryList = new List<string>();
- //考虑到图表的series数据为一个对象数组 这里额外定义一个series的类
- List<Series> seriesList = new List<Series>();
-
- //考虑到Echarts图表需要设置legend内的data数组为series的name集合这里需要定义一个legend数组
- List<string> legendList = new List<string>();
-
- DataTable dt = null;
- using (SqlConnection con = new SqlConnection("Data Source=.;User ID=sa;Password=111111;Database=AT_DB;"))
- {
- string strSQL = "select top 12 * from T_EchartData1";
- using (SqlDataAdapter adapter = new SqlDataAdapter(strSQL, con))
- {
- DataSet ds = new DataSet();
- adapter.Fill(ds);
- dt = ds.Tables[0];
- }
- }
- //Response.Write(dt.Rows.Count+"条数据!");
- //设置legend数组
- legendList.Add("今年能耗"); //这里的名称必须和series的每一组series的name保持一致
- legendList.Add("去年能耗"); //这里的名称必须和series的每一组series的name保持一致
-
-
- Series thisSeriesObj = new Series();
- thisSeriesObj.id = 0;
- thisSeriesObj.name = "今年能耗";
- thisSeriesObj.type = "line"; //线性图呈现
- thisSeriesObj.data = new List<object>();
- thisSeriesObj.itemStyle = new itemStyle { normal = new normal { color = "#0099FF" } };
- Series lastSeriesObj = new Series();
- lastSeriesObj.id = 1;
- lastSeriesObj.name = "去年能耗";
- lastSeriesObj.type = "line"; //线性图呈现
- lastSeriesObj.data = new List<object>();
- lastSeriesObj.itemStyle = new itemStyle { normal = new normal { color = "#00CC00" } };
- foreach (DataRow dr in dt.Rows)
- {
- categoryList.Add(dr[0].ToString() + "月");
- thisSeriesObj.data.Add(dr[1]);
- lastSeriesObj.data.Add(dr[2]);
- }
- //将sereis对象压入sereis数组列表内
- seriesList.Add(thisSeriesObj);
- seriesList.Add(lastSeriesObj);
-
- //最后调用相关函数将List转换为Json
- //因为我们需要返回category和series、legend多个对象 这里我们自己在new一个新的对象来封装这两个对象
- var newObj = new
- {
- category = categoryList,
- series = seriesList,
- legend = legendList
- };
- //Response返回新对象的json数据
- Response.Write(JsonConvert.SerializeObject(newObj, Formatting.None));
- Response.End();
- }
-
- /// <summary>
- /// 获得数据且用Json格式数据返回
- /// </summary>
- private void GetReportDataAjaxData(string code)
- {
- //考虑到图表的category是字符串数组 这里定义一个string的List
- List<string> categoryList = new List<string>();
- //考虑到图表的series数据为一个对象数组 这里额外定义一个series的类
- List<Series> seriesList = new List<Series>();
-
- //考虑到Echarts图表需要设置legend内的data数组为series的name集合这里需要定义一个legend数组
- List<string> legendList = new List<string>();
-
- DataTable dt = null;
- using (SqlConnection con = new SqlConnection("Data Source=.;User ID=sa;Password=111111;Database=AT_DB;"))
- {
- string strSQL = "select * from T_EchartData2";
- using (SqlDataAdapter adapter = new SqlDataAdapter(strSQL, con))
- {
- DataSet ds = new DataSet();
- adapter.Fill(ds);
- dt = ds.Tables[0];
- }
- }
- //Response.Write(dt.Rows.Count + "条数据!");
- //设置legend数组
- legendList.Add("电"); //这里的名称必须和series的每一组series的name保持一致
- legendList.Add("水"); //这里的名称必须和series的每一组series的name保持一致
- legendList.Add("燃煤"); //这里的名称必须和series的每一组series的name保持一致
- legendList.Add("天然气"); //这里的名称必须和series的每一组series的name保持一致
- legendList.Add("汽油"); //这里的名称必须和series的每一组series的name保持一致
- legendList.Add("柴油"); //这里的名称必须和series的每一组series的name保持一致
- legendList.Add("热力"); //这里的名称必须和series的每一组series的name保持一致
- legendList.Add("其他"); //这里的名称必须和series的每一组series的name保持一致
-
-
- Series dianSeries = new Series();
- dianSeries.id = 0;
- dianSeries.name = "电";
- dianSeries.type = "line"; //线性图呈现
- dianSeries.data = new List<object>();
- dianSeries.itemStyle = new itemStyle { normal = new normal { color = "#0099FF" } };
- Series shuiSeries = new Series();
- shuiSeries.id = 1;
- shuiSeries.name = "水";
- shuiSeries.type = "line"; //线性图呈现
- shuiSeries.data = new List<object>();
- shuiSeries.itemStyle = new itemStyle { normal = new normal { color = "#00CC00" } };
- Series yuanmeiSeries = new Series();
- yuanmeiSeries.id = 2;
- yuanmeiSeries.name = "燃煤";
- yuanmeiSeries.type = "line"; //线性图呈现
- yuanmeiSeries.data = new List<object>();
- yuanmeiSeries.itemStyle = new itemStyle { normal = new normal { color = "#008080" } };
- Series tianranqiSeries = new Series();
- tianranqiSeries.id = 3;
- tianranqiSeries.name = "天然气";
- tianranqiSeries.type = "line"; //线性图呈现
- tianranqiSeries.data = new List<object>();
- tianranqiSeries.itemStyle = new itemStyle { normal = new normal { color = "#CC6600" } };
- Series qiyouSeries = new Series();
- qiyouSeries.id = 4;
- qiyouSeries.name = "汽油";
- qiyouSeries.type = "line"; //线性图呈现
- qiyouSeries.data = new List<object>();
- qiyouSeries.itemStyle = new itemStyle { normal = new normal { color = "#CC00CC" } };
- Series chaiyouSeries = new Series();
- chaiyouSeries.id = 5;
- chaiyouSeries.name = "柴油";
- chaiyouSeries.type = "line"; //线性图呈现
- chaiyouSeries.data = new List<object>();
- chaiyouSeries.itemStyle = new itemStyle { normal = new normal { color = "#0033CC" } };
- Series reliSeries = new Series();
- reliSeries.id = 6;
- reliSeries.name = "热力";
- reliSeries.type = "line"; //线性图呈现
- reliSeries.data = new List<object>();
- reliSeries.itemStyle = new itemStyle { normal = new normal { color = "#003300" } };
- Series qitaSeries = new Series();
- qitaSeries.id = 7;
- qitaSeries.name = "其他";
- qitaSeries.type = "line"; //线性图呈现
- qitaSeries.data = new List<object>();
- qitaSeries.itemStyle = new itemStyle { normal = new normal { color = "#FF0000" } };
- foreach (DataRow dr in dt.Rows)
- {
- categoryList.Add(string.Format("{0}年{1}月", dr["ReportYear"], dr["ReportMonth"]));
- dianSeries.data.Add(string.IsNullOrEmpty(dr["DIAN"].ToString()) ? 0 : dr["DIAN"]);
- shuiSeries.data.Add(string.IsNullOrEmpty(dr["SHUI"].ToString()) ? 0 : dr["SHUI"]);
- yuanmeiSeries.data.Add(string.IsNullOrEmpty(dr["YUANMEI"].ToString()) ? 0 : dr["YUANMEI"]);
- tianranqiSeries.data.Add(string.IsNullOrEmpty(dr["TIANRQ"].ToString()) ? 0 : dr["TIANRQ"]);
- qiyouSeries.data.Add(string.IsNullOrEmpty(dr["QIYOU"].ToString()) ? 0 : dr["QIYOU"]);
- chaiyouSeries.data.Add(string.IsNullOrEmpty(dr["CHAIYOU"].ToString()) ? 0 : dr["CHAIYOU"]);
- reliSeries.data.Add(string.IsNullOrEmpty(dr["RELI"].ToString()) ? 0 : dr["RELI"]);
- qitaSeries.data.Add(string.IsNullOrEmpty(dr["QTNY"].ToString()) ? 0 : dr["QTNY"]);
- }
- //将sereis对象压入sereis数组列表内
- seriesList.Add(dianSeries);
- seriesList.Add(shuiSeries);
- seriesList.Add(yuanmeiSeries);
- seriesList.Add(tianranqiSeries);
- seriesList.Add(qiyouSeries);
- seriesList.Add(chaiyouSeries);
- seriesList.Add(reliSeries);
- seriesList.Add(qitaSeries);
-
- //最后调用相关函数将List转换为Json
- //因为我们需要返回category和series、legend多个对象 这里我们自己在new一个新的对象来封装这两个对象
- var newObj = new
- {
- category = categoryList,
- series = seriesList,
- legend = legendList
- };
- //Response返回新对象的json数据
- Response.Write(JsonConvert.SerializeObject(newObj, Formatting.None));
- Response.End();
- }
- }
- /// <summary>
- /// 定义一个Series类 设置其每一组sereis的一些基本属性
- /// </summary>
- class Series
- {
- /// <summary>
- /// sereis序列组id
- /// </summary>
- public int id
- {
- get;
- set;
- }
-
- /// <summary>
- /// series序列组名称
- /// </summary>
- public string name
- {
- get;
- set;
- }
-
- /// <summary>
- /// series序列组呈现图表类型(line、column、bar等)
- /// </summary>
- public string type
- {
- get;
- set;
- }
-
- /// <summary>
- /// series序列组的itemstyle
- /// </summary>
- public object itemStyle
- {
- get;
- set;
- }
- /// <summary>
- /// series序列组的数据为数据类型数组
- /// </summary>
- public List<object> data
- {
- get;
- set;
- }
- }
-
- class normal
- {
- /// <summary>
- /// color
- /// </summary>
- public string color
- {
- get;
- set;
- }
- }
-
- class itemStyle
- {
- /// <summary>
- /// normal
- /// </summary>
- public object normal
- {
- get;
- set;
- }
- }
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。