asp.net ashx|asp.net+ashx实现堆积柱状图说明

更新时间:2019-05-27    来源:百度指南    手机版     字体:

【www.bbyears.com--百度指南】

先看图:

IT分享echarts教程,echarts asp.net ,echarts堆积柱状图,echarts demo下载

堆积柱状图实现斜线、对比、拖拽等效果。可以多个维度再现大数据。

Demo百度网盘下载地址:

http://pan.baidu.com/s/10A5Hk

流程:

1、数据由ashx提供,序列化好的数组字符串。

 代码如下 var
 
datajs =
"{   tooltip : { show: true,   axisPointer : {type : "shadow"  },trigger: "item"          },  title: { text: "测试分析", x: "right", y: "bottom" }, legend: { data: ["测试2", "测试1", "测试3", "测试44"] }, series: [{ name: "测试2", type: "bar", itemStyle: {  barWidth: 40,    normal: { label: { show: true, position: "inside" } } }, stack: "总数", data: [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 14, 4, 2, 2, 2, 2, 2, 2, 2, 2] }, { name: "测试1", type: "bar", itemStyle: { normal: { label: { show: true, position: "inside" } } }, stack: "总数", data: [1, 1, 1, 1, 1, 1, 1, 1, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] }, { name: "测试3", type: "bar", itemStyle: { normal: { label: { show: true, position: "inside" } } }, stack: "总数", data: ["-", 2, 1, "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-"] }, { name: "测试44", type: "bar", itemStyle: { normal: { label: { show: true, position: "inside" } } }, stack: "总数", data: ["-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", 2, 1] }], xAxis: [{ type: "category", data: ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23"] }], yAxis: [{ type: "value" }] }"

;
上面的字符串我放在js中,方便修改。

2、自定义逻辑插件:jquery-time_analysis.js

完成参数的读取和返回,完成ashx地址的配置,echarts src、zrender src 的路径配置;


   

 代码如下 $.fn.time_analysis.defaults = {
       
query_url:
"test.ashx"
,
       
echarts_path:
"./echarts/src"
,
       
zrender_path:
"./zrender/src"
   
};


完成事件绑定,鼠标点击支持;

 代码如下
 
//定义图表对象
           
require.config({
               
packages: [{
                   
name:
"echarts"
,
                   
location: settings.echarts_path,
                   
main:
"echarts"
               
}, {
                   
name:
"zrender"
,
                   
location: settings.zrender_path,
                   
main:
"zrender"
               
}]
           
});
           
var
 
option_data = _getOption(settings);
           
$
this
.data(
"option"
, option_data);
           
require(
             
[
"echarts"
,
"echarts/chart/bar"
],
             
function
 
(ec) {
                 
echarts = ec;
                 
if
 
(chart && chart.dispose) {
                     
chart.dispose();
                 
}
                 
chart = echarts.init($
this
[0]);
                 
chart.setOption(option_data);
                 
//鼠标点击事件
                 
ecConfig = require(
"echarts/config"
);
                 
chart.on(ecConfig.EVENT.CLICK, _clickHandler);
                 
window.onresize = chart.resize;
             
});

关键代码:data对象是服务器端返回的字符串。

 代码如下

 
function
 
_getOption(settings) {
       
var
 
option = {};
       
$.ajax({
           
type:
"post"
,
           
dataType:
"text"
,
           
data: settings.query_param,
           
async:
false
,
           
url: settings.query_url,
           
success:
function
 
(data) {
               
 
               
if
 
(data) { option = eval(
"("
 
+ data+
")"
); }
           
}
       
});
       
return
 
option;
   
};


 3、调用:

 代码如下
   
<script src=
"js/jquery-1.9.1.js"
></script>
   
<script src=
"js/esl.js"
></script>
   
<script src=
"BusinessJs/jquery-time_analysis.js"
></script>
   
<script>
       
var
 
query = { query_param: { oper:
"bar"
, seId:1, mobile:
""
, queryTime:
""
, slot: 1 } };
       
var
 
legend_check = { message: 0, call: 0, power_on: 0, power_off: 0 };
       
$(document).ready(
function
 
() {
           
init();
       
});
       
function
 
init() {
        
 
           
$(
"#time_behavior_bar"
).time_analysis(query);
       
}
       
var
 
PhoneList = [];
       
var
 
Suspect = {};
       
var
 
MonthList = [];
       
function
 
_clickHandler(param) {
           
var
 
option = $(
"#time_behavior_bar"
).time_analysis(
"option"
);
           
var
 
relation_type;
           
alert(param.seriesIndex +
"  代表:"
 
+ option.series[param.seriesIndex].name +
"  数据有:"
 
+ option.series[param.seriesIndex].data.length);
       
}
   
</script>

注意引用jquery.js、 esl.js;

对象说明:echarts会提供一个opertion的对象,这个对象在js中保存了和报表相关的所有东西。

  var option = $("#time_behavior_bar").time_analysis("option");

param.seriesIndex 是鼠标点击事件的对象,代表了点击那个legend。我们可以通过 option.series[param.seriesIndex]获取到这个对象。

 option.series[param.seriesIndex].name代表了测试1 测试2  这样的legend名称。其他大家可以再发挥。

原文来自:http://www.suchso.com/projecteactual/echarts-aspnet-ashx-demo-download-duiji-bar.html

本文来源:http://www.bbyears.com/seo/52310.html

热门标签

更多>>

本类排行