asp.net MVC项目开发之统计图echarts饼形图(二)
上面介绍了柱状图,只有js代码后台的传递等我们介绍完饼形图的使用过程在做介绍
有了柱状图的介绍,在使用饼形图,其实很容易了,上代码
1.首先加载网页时,需要用到的加载项和事件。
//打开网页加载
$(function () {
// 路径配置
require.config({
paths: {
echarts: 'http://echarts.baidu.com/build/dist'
}
});
areaQuery();
})
2.获取查询的区域areaId值,以及查询区域等级值,把需要的数据异步到后台进行查询,为了防止数据的多次加载造成数据失真,我们需要用js中的splice方法先进行清空数据,然后在进行加载数据。
//查询操作
function areaQuery() {
var name = "婚姻";//户口性质名称
var arrays = new Array();//保存获取的数据信息
var nameArrays = new Array();//获取属性名称
var sum = 0;//数据总和
var resId = $("#ddlResidence").val();
if (resId == "") {
resId = 0;
} else {
resId = parseInt(resId);
}
var county = $("#ddlCountyArea option:selected").attr("value");//县
var town = $("#ddlTownArea option:selected").attr("value");//镇
var village = $("#ddlSubArea option:selected").attr("value");//村 var areaId = 0;
var level = 0;
if (village != "") {
level = 3;
areaId = village;
} else {
if (town != "") {
areaId = town;
level = 2;
} else {
if (county != "") {
areaId = county;
level = 1;
}
}
}
//异步获取统计图数据
$.ajax({
type: "post",
url: "@Url.Action("GetMarriageList")",
datatype: "json",
data: { areaId: areaId, level: level },
beforesend: function (xmlhttprequest) {
$("#pint").text("数据正在加载中,请稍后.........");
},
success: function (json) {
nameArrays.splice(0, nameArrays.length);//先清空数据,然后在插入
arrays.splice(0, arrays.length); //先清空数据,然后在插入
for (var item in json) {
nameArrays.push(item);
arrays.push(parseInt(json[item]));
sum = sum + parseInt(json[item]);
}
setOptionBar(name, nameArrays, arrays, sum);
},
error: function () {
alert("此区域没有数据");
}
});
}
3.饼形图的设置代码,根据自己的需要,我做了一些改动。原有功能是,当鼠标移动到统计图中任意一个统计字段时,字段所表示的环形区域会移位,同时中间圆形显示字段名称。改动中间名称写死,为name变量值。为了让圆形显示,我们需要给他数据,数据变量为sum,他的值是统计图中所有字段之和。
//统计图设置
function setOptionBar(name, nameData, arrays, sum) {
// 使用
require(
[
'echarts',
'echarts/chart/pie' // 使用柱状图就加载bar模块,按需加载
],
function (ec) {
// 基于准备好的dom,初始化echarts图表
var myChart = ec.init(document.getElementById('main'));
// 基于准备好的dom,初始化echarts图表
var myChart = ec.init(document.getElementById('main'));
option = {
tooltip: {
trigger: 'item',
formatter: "{a} <br/>{b} : {c} ({d}%)"
},
legend: {
orient: 'vertical',
x: 'left',
data: nameData
},
toolbox: {
show: true,
feature: {
mark: { show: true },
dataView: { show: true, readOnly: false },
magicType: {
show: true,
type: ['pie']
},
restore: { show: true },
saveAsImage: { show: true }
}
},
calculable: false,
series: [
{
//name:'访问来源',
type: 'pie',
selectedMode: 'single',
radius: [0, 70],
itemStyle: {
normal: {
label: {
position: 'center',
textStyle: {
color: '#9966CC',
align: 'center',
baseline: 'middle',
fontFamily: '微软雅黑',
fontSize: 30,
fontWeight: 'bolder'
}
},
labelLine: {
show: false
}
}
},
data: [
{ value: sum, name: name }
]
},
{
name: '结婚情况',
type: 'pie',
radius: [100, 140], // for funnel
x: '60%',
width: '35%',
funnelAlign: 'left',
max: 1048, data: [
{ value: arrays[0], name: nameData[0] },
{ value: arrays[1], name: nameData[1] },
{ value: arrays[2], name: nameData[2] },
{ value: arrays[3], name: nameData[3] }
]
}
]
};
var ecConfig = require('echarts/config');
myChart.on(ecConfig.EVENT.PIE_SELECTED, function (param) {
var selected = param.selected;
var serie;
var str = '当前选择: ';
for (var idx in selected) {
serie = option.series[idx];
for (var i = 0, l = serie.data.length; i < l; i++) {
if (selected[idx][i]) {
str += '【系列' + idx + '】' + serie.name + ' : ' +
'【数据' + i + '】' + serie.data[i].name + ' ';
}
}
}
document.getElementById('wrong-message').innerHTML = str;
}) myChart.setOption(option);
})
}
上效果图

饼形图页面的处理也就完成了,我们只是介绍了页面中处理的js代码,在测试过程中,大家可以先给数据,做出效果,然后在异步获取后台数据。
asp.net MVC项目开发之统计图echarts饼形图(二)的更多相关文章
- asp.net MVC项目开发之统计图echarts后台数据的处理(三)
前台显示的东西,有相应的文档很容易修改,后台传递数据方式才是我们最关心的 首先要记住,我们一步数据使用的是post,那么后台代码我们要给方法加上 [HttpPost]注解 不然异步没有效果 下面上代码 ...
- asp.net MVC项目开发之统计图echarts柱状图(一)
echarts统计图doc网址:http://echarts.baidu.com/echarts2/index.html 使用echarts,需要引用在js中,如果你已经下载echarts的js包,可 ...
- asp.net MVC项目开发之统计图的使用(前言)
接触这个项目,是项目组长已经完成了多数需求,并且有2个项目需要完工的情况下,让我加入,给了我2个表格,让我去设计出统计图. 第一次做统计图,可以说没有任何经验,不知道该如何下手,表格的数据量 ...
- 习题-任务2初始ASP.NET MVC项目开发
一.选择题 1.在ASP.NET MVC项目的RouteConfig.cs文件中,( )方法注册了默认的路由配置. A.RegisterMap B.RegisterRoutes C. ...
- ASP.NET MVC项目实现BasePage基类用作ASPX.CS网页继承
在ASP.NET MVC项目开发,还是需要创建一些Web Page来实现一些功能,如呈现报表等... 但是一旦项目的.ASPX网页太多了,其中的程序代码也会有代码冗余,出现这些情况,我们得需要对这些代 ...
- 基于BUI开发Asp.net MVC项目
因工作性质参于并开发过一些Web应用程序,前端项目框架也用了不少,比如MiniUI.ExtJS.以及定制的项目前端框架.无意中看到BUI前端框架,第一眼就被它的优雅布局所吸引.简洁的项目门户Banne ...
- ASP.NET MVC——CodeFirst开发模式
Entity Framework框架提供了几种开发模式,比如Database First,Model First,Code First.Database First是最老也是应用得最广泛的一种设计方式 ...
- Asp.net Mvc模块化开发之分区扩展框架
对于一个企业级项目开发,模块化是非常重要的. 默认Mvc框架的AreaRegistration对模块化开发真的支持很好吗?真的有很多复杂系统在使用默认的分区开发的吗?我相信大部分asp.net的技术团 ...
- Asp.net Mvc模块化开发系列(目录)
模块化开发是非常重要的,模块化开发是个系统性问题,为此我觉得有必须要写一个系列的文章才能基本说的清楚 那又为什么要写一个目录呢? 其一.是对我昨天承诺写一个系列新的文章的回应 其二.是先写出一个大纲, ...
随机推荐
- Nhibernate的Session和StatelessSession性能比较
Nhibernate的Session和StatelessSession性能比较 作者:Jesai 一个月入30K的大神有一天跟我说:我当年在你现在这个阶段,还在吊儿郎当呢!所以你努力吧! 有时候,一个 ...
- .net mvc Bundle 自己配置
遇到了个坑 来和大家分享一下 1.一个空的mvc项目需要引用 System.Web.Optimization 2.然后nuget添加 microsoft ASP.NET WEB OPTIMIZATIO ...
- Dynamics CRM 快速获取custom entity
我们可以使用Command来实现快速获取custom entity的值. 创建cmd 并且在nuget中引用 CRMSDK 复制下面的代码. userName 为登陆CRM的email passwo ...
- css的字体单位
在css中的字体单位主要以px.em.rem为主.其中px也就是像素,是一种字体长度,它的长度是相对于显示器的品目分辨率而言的.一般情况下在浏览器中默认字体的大小是16px.其中em是相对字体.em的 ...
- #使用abp框架与vue一步一步写我是月老的小工具(2) 后台搭建初体验
#使用abp框架与vue一步一步写我是月老的小工具(2) 后台搭建初体验 一.续上前言 关于这个小玩意的产品思考,假设我暂时把他叫我是月老热心人 这是一个没有中心的关系链,每个人进入以后都是以自己为中 ...
- MySQL物理物理备份与还原工具xtraBackup
(一)xtraBackup简介 xtraBackup是Percona公司开发的一款MySQL数据库备份软件,在备份模式中属于物理备份.其显著特点是开源.免费.备份执行过程中不会阻塞事物.备份可压缩.支 ...
- C++标准模板库(STL)学习笔记
C++标准模板库(STL) 一.vector(变长数组) 1.使用vector #include <vector> using namespace std; 2.vector的定义 vec ...
- python学习记录(五)
20180829--https://www.cnblogs.com/fnng/archive/2013/04/20/3032563.html 字典 字典的使用 现实中的字段及在Python中的字段都进 ...
- python中常见的报错信息
python中常见的报错信息 在运行程序时常会遇到报错提示,报错的信息会提示是哪个方向错的,从而帮助你定位问题: 搜集了一些python最重要的内建异常类名: AttributeError:属性错误, ...
- char*a[10] ={"123456","2345"}和char*a="abcde"