上面介绍了柱状图,只有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饼形图(二)的更多相关文章

  1. asp.net MVC项目开发之统计图echarts后台数据的处理(三)

    前台显示的东西,有相应的文档很容易修改,后台传递数据方式才是我们最关心的 首先要记住,我们一步数据使用的是post,那么后台代码我们要给方法加上 [HttpPost]注解 不然异步没有效果 下面上代码 ...

  2. asp.net MVC项目开发之统计图echarts柱状图(一)

    echarts统计图doc网址:http://echarts.baidu.com/echarts2/index.html 使用echarts,需要引用在js中,如果你已经下载echarts的js包,可 ...

  3. asp.net MVC项目开发之统计图的使用(前言)

    接触这个项目,是项目组长已经完成了多数需求,并且有2个项目需要完工的情况下,让我加入,给了我2个表格,让我去设计出统计图.      第一次做统计图,可以说没有任何经验,不知道该如何下手,表格的数据量 ...

  4. 习题-任务2初始ASP.NET MVC项目开发

    一.选择题 1.在ASP.NET MVC项目的RouteConfig.cs文件中,(    )方法注册了默认的路由配置. A.RegisterMap    B.RegisterRoutes    C. ...

  5. ASP.NET MVC项目实现BasePage基类用作ASPX.CS网页继承

    在ASP.NET MVC项目开发,还是需要创建一些Web Page来实现一些功能,如呈现报表等... 但是一旦项目的.ASPX网页太多了,其中的程序代码也会有代码冗余,出现这些情况,我们得需要对这些代 ...

  6. 基于BUI开发Asp.net MVC项目

    因工作性质参于并开发过一些Web应用程序,前端项目框架也用了不少,比如MiniUI.ExtJS.以及定制的项目前端框架.无意中看到BUI前端框架,第一眼就被它的优雅布局所吸引.简洁的项目门户Banne ...

  7. ASP.NET MVC——CodeFirst开发模式

    Entity Framework框架提供了几种开发模式,比如Database First,Model First,Code First.Database First是最老也是应用得最广泛的一种设计方式 ...

  8. Asp.net Mvc模块化开发之分区扩展框架

    对于一个企业级项目开发,模块化是非常重要的. 默认Mvc框架的AreaRegistration对模块化开发真的支持很好吗?真的有很多复杂系统在使用默认的分区开发的吗?我相信大部分asp.net的技术团 ...

  9. Asp.net Mvc模块化开发系列(目录)

    模块化开发是非常重要的,模块化开发是个系统性问题,为此我觉得有必须要写一个系列的文章才能基本说的清楚 那又为什么要写一个目录呢? 其一.是对我昨天承诺写一个系列新的文章的回应 其二.是先写出一个大纲, ...

随机推荐

  1. 前端之css的基本使用(一),行内、内部、外部样式,语法格式、注释、选择符、属性等

    一.行内.内部.外部样式 1.行内样式 <!DOCTYPE html> <html lang="en"> <head> <meta cha ...

  2. 【WPF学习】第二十章 内容控件

    内容控件(content control)是更特殊的控件类型,它们可包含并显示一块内容.从技术角度看,内容控件时可以包含单个嵌套元素的控件.与布局容器不同的是,内容控件只能包含一个子元素,而布局容器主 ...

  3. Python 之redis操作

    Redis 是一个高性能的key-value数据库,是一种非关系型的数据库.有以下三个特点: Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用. Redis不 ...

  4. C#反射与特性(四):实例化类型

    目录 1,实例化类型 1.1 Activator.CreateInstance() 1.2 ConstructorInfo.Invoke() 2,实例化委托 3,实例化泛型类型 3.1 实例化泛型 3 ...

  5. Android教程2020 - RecyclerView响应点击

    本文介绍RecyclerView设置点击的方法.这里给出比较常见的使用方式. Android教程2020 - 系列总览 本文链接 前面我们已经知道如何用RecyclerView显示一列数据. 用户点击 ...

  6. 简单总结关于阿里云CDN的知识

    CDN概念剖析 这里解释一下几个概念,摘自阿里云官方文档. 源站: 源站决定了回源时,请求到哪个IP 回源host:回源host决定回源请求访问到该IP上的哪个站点 例子1:源站是域名 源站为 www ...

  7. zabbix3.4搭建钉钉报警

    1.在钉钉群里添加一个自定义的机器 在设置说明中无需开启Outgoing机制 红色箭头指的信息很重要后面脚本会用到 2.脚本 #!/usr/bin/python # -*- coding: utf-8 ...

  8. python实现一个客户端与服务端的通信

    函数介绍 Socket对象方法: 服务端: 函数 描述 .bind() 绑定地址关键字,AF_INET下以元组的形式表示地址.常用bind((host,port)) .listen() 监听TCP,可 ...

  9. Arduino系列之DHT11模块采集数据(一)

    下面我将介绍DHT11模块的相关用法 DHT11数字传感器概述:是一款含有已校准数字信号输出的温湿度复合传感器 .它应用专用的数字模块采集技术和温湿度传感技术 ,确保产品具有极 高的可靠性与卓越的长期 ...

  10. django 发布会签到系统web开发

    引言 最近学习了虫师的发布会签到系统demo,结合自己所学django知识,对demo重新塑造了一下.也是为了练练手,巩固知识.现在就分享一下成果~ Django工作流 学习django web开发, ...