ASP.NET MVC使用Echarts动态生成图表
来源:互联网 发布:视频监控软件免费版 编辑:程序博客网 时间:2024/05/29 14:28
第一步,去Echarts官网下载Echarts的JS插件。地址:http://echarts.baidu.com/download.html
第二步,把下载的JS引用到页面上
第三步,前台cshtml的HTML和JS
HTML:
<div style="padding: 30px; margin: 25px;border-radius:5px; border: 1px solid rgb(204, 204, 204); box-shadow: rgb(189, 189, 189) 0px 0px 10px; background: #fff;"> <!-- 为 ECharts 准备一个具备大小(宽高)的 DOM --> <div id="main" style="width: 1700px;height:650px;text-align:center"><span style="margin:0 auto;line-height:50">I'm Ready.</span></div> </div>
JS:
//查询事件 $("#btn_Search").click(function () { try { $.ajax({ url: '../../Echarts/Test/GetChartOption', data: { Test1:Test1的值,Test2:Test2的值}, type: "POST", dataType: "json", async: false, success: function (data) { //没有数据时提示 if (data.hasOwnProperty("type")) { dialogMsg(data.message, 0); return; } var series = JSON.parse(data.Series.series); var myChart = echarts.init(document.getElementById('main')); myChart.showLoading({ text: '疯狂计算中', effect: 'whirling' }); option = { title: { text: "Echarts在ASP.NET MVC下动态生成图表", subtext: "来自5653325的的博客" }, tooltip: { trigger: 'axis' }, legend: { data: data.legend.data }, toolbox: { show: true, feature: { dataZoom: { yAxisIndex: 'none' }, dataView: { readOnly: false }, magicType: { type: ['line', 'bar'] }, restore: {}, saveAsImage: {} } }, xAxis: { type: 'category', boundaryGap: false, data: data.xAxis.data }, yAxis: { type: 'value', splitNumber: 10, axisLabel: { formatter: '{value} ' } }, series: series }; //给每个值设定相同的 显示最低、最高和平均值的线条 $(series).each(function (u) { this.markPoint = { data: [ { type: 'max', name: '最高成绩' }, { type: 'min', name: '最低成绩' } ] }; this.markLine = { data: [ { type: 'average', name: '平均值' }, [{ symbol: 'none', x: '93%', yAxis: 'max' }, { symbol: 'circle', label: { normal: { position: 'start', formatter: '最大值' } }, type: 'max', name: '最高点' }] ] }; }); myChart.setOption(option); myChart.hideLoading(); }, error: function (XMLHttpRequest, textStatus, errorThrown) { dialogMsg(errorThrown, -1); } }); } catch (ex) { dialogMsg("请求失败,可能是您掉线了。请刷新页面后重试", 0); } });
第四歩,后台Controller中的代码
/// <summary> /// 返回Echarts的option数据 /// </summary> /// <returns></returns> [HttpPost] public ActionResult GetChartOption(string Test1, string Test2) { //根据条件 组合成查询语句,从成绩表里取得数据 IEnumerable<ChengJiEntity> IEnChengJiList = bll.GetList(Test1, Test2); if (IEnChanceList == null || IEnChanceList.Count() == 0) { return Error("没有数据"); } #region 生成Echarts数据 List<string> Days = new List<string>(); //日期,X轴底部展示 foreach (ChengJiEntity c in IEnChanceList) { if (!Days.Contains(c.SourceId.ToShortDateString())) { Days.Add(c.SourceId.ToShortDateString()); } } //折线图上部项目名称,用名称进行GroupBy分组得到唯一名称 List<IGrouping<string, ChengJiEntity>> ChengJiList = new List<IGrouping<string, ChengJiEntity>>(); ChengJiList = IEnChengJiList.GroupBy(x => x.FullName).ToList(); dynamic sp;//一个动态的类,省得要去定义Model,.NET4.0以上支持 List<dynamic> LL = new List<dynamic>();//Y轴上折现的数值列表[1,2,3,4,5]这样 List<int> LV;//每个Y轴上的数值 List<string> Legend = new List<string>();//展示名称 如['成绩一','成绩二'] //便利循环得到名称和每个名称的所有值 foreach (IGrouping<string, ChengJiEntity> s in ChengJiList) { Legend.Add(s.Key); List<ChengJiEntity> CL = new List<ChengJiEntity>(); //得到此名称下的查询到的所有信息,并取得值 CL = IEnChengJiList.Where(x => x.FullName == s.Key).OrderBy(x => x.AddDate).ToList(); LV = new List<int>(); foreach (string day in Days) { //根据天数生成X轴底部说明,并且在当前日期没有值的Y轴上的数据进行补0操作 ChengJiEntity DayChance = new ChengJiEntity(); DayChance = CL.Where(x => x.FullName == s.Key && x.AddDate.ToShortDateString() == day).FirstOrDefault(); if (DayChance == null || DayChance.SuccessRate == null) { LV.Add(0); } else { LV.Add(Decimal.ToInt32((decimal)DayChance.FenShu)); } } sp = new ExpandoObject(); sp.name = s.Key; sp.type = "line"; sp.data = LV.ToArray(); LL.Add(sp); } #endregion return Json(new { xAxis = new { data = Days.ToArray() }, legend = new { data = Legend.ToArray() }, Series = new { series = JsonConvert.SerializeObject(LL) }}); }
第五步,前台运行结果展示。
擦,CSDN的编辑器竟然不能粘贴图片保存。。。还的重来一遍上传图片。
阅读全文
1 0
- ASP.NET MVC使用Echarts动态生成图表
- asp.net使用echarts展示图表数据
- 使用Echarts生成图表
- 使用Echarts生成图表
- ECharts动态生成图表的一些问题
- ASP.net 使用(动态的有动画效果的)生成图表工具 Fusion Charts
- iOS-Echarts动态图表控件的使用
- 使用echarts做动态数据 图表
- asp.net owc11生成图表
- echarts生成图表
- ASP.NET 2.0中使用OWC生成图表
- ASP.Net MVC中 Echarts简单Demo
- ECharts动态图表展示
- echarts动态图表
- echarts 绘制动态图表
- ASP.NET中动态获取数据使用Highcharts图表控件
- asp.net下使用C#实现动态绘制图表
- ASP.NET MVC 使用总结(二)——扩展HtmlHelper实现动态生成title及meta
- Jaxb处理java对象和xml之间转换常用的annotation
- 关于f_open遇见的FR_DISK_ERR问题
- socket C/C++编程(7)server端读取client端键入的数据
- int main(int argc, char *argv[])问题(1)--概念和传数值
- shell判断全部都是数字(shell学习笔记六)
- ASP.NET MVC使用Echarts动态生成图表
- ImageLoader缓存图片到SD卡+清除缓存
- 移动app开发,固定图片div宽高,根据实际图片大小控制图片不变形
- <一>练习 仿AideTeach 软件(android)
- Android APN
- 关于C#迭代器与Unity的Coroutine
- rocketmq注意点
- iOS开发-设置headerInsectionView不悬浮
- Python Qt GUI 环境配置