HighChart控件动态获得后台数据

花了点时间折腾出来的,记录一下结果,以免忘记:

客户端代码:

 1  < asp:Content  ID ="HeaderContent"  runat ="server"  ContentPlaceHolderID ="HeadContent" >
 2      < script  type ="text/javascript"  src ="Scripts/jquery-1.7.2.min.js" ></ script >
 3      < script  type ="text/javascript"  src ="js/highcharts.js" ></ script >
 4      < script  type ="text/javascript" >
 5           var  chart;
 6          $( function  () {
 7               var  options  =  {
 8                  chart: {
 9                      renderTo:  ' container ' ,
10                      type:  ' line ' ,
11                      marginRight:  130 ,
12                      marginBottom:  25
13                  },
14                  title: {
15                      text:  ' Monthly Average Temperature ' ,
16                      x:  - 20   // center
17                  },
18                  subtitle: {
19                      text:  ' Source: WorldClimate.com ' ,
20                      x:  - 20
21                  },
22                  xAxis: {
23                      categories: []
24                  },
25                  yAxis: {
26                      title: {
27                          text:  ' Temperature (°C) '
28                      },
29                      plotLines: [{
30                          value:  0 ,
31                          width:  1 ,
32                          color:  ' #808080 '
33                      }]
34                  },
35                  tooltip: {
36                      formatter:  function  () {
37                           return   ' <b> '   +   this .series.name  +   ' </b><br/> '   +
38                           this .x  +   ' '   +   this .y  +   ' °C ' ;
39                      }
40                  },
41                  legend: {
42                      layout:  ' vertical ' ,
43                      align:  ' right ' ,
44                      verticalAlign:  ' top ' ,
45                      x:  - 10 ,
46                      y:  100 ,
47                      borderWidth:  0
48                  },
49                  series: []
50              };
51 
52              $.get( " getdata.aspx " , { index:  1  },  function  (data) {
53                  data  =  data.split( ' & ' );
54                   var  data1  = eval(data[ 1 ]);
55                   for  ( var  i  =   0 ; i  <  data1.length; i ++ ) {
56                      options.series.push(data1[i]);
57                  }
58                   var  cate  =  data[ 0 ].split( ' , ' );
59                   for  ( var  i  =   0 ; i  <  cate.length; i ++ ) {
60                      options.xAxis.categories.push(cate[i]);
61                  }
62                  chart  =   new  Highcharts.Chart(options);
63              });
64          });
65       </ script >
66  </ asp:Content >
67  < asp:Content  ID ="BodyContent"  runat ="server"  ContentPlaceHolderID ="MainContent" >
68      < h2 >
69         欢迎使用 ASP.NET!
70      </ h2 >
71 
72     
73      < div  id ="container"  style ="min-width: 400px; height: 400px; margin: 0 auto" ></ div >
74  </ asp:Content >

服务器端的代码:

 1          public  void GetData()
 2         {
 3             StringBuilder sb =  new StringBuilder();
 4              // X轴显示的名称
 5             sb.Append( " Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec& ");
 6              // 数据组合成JSON样式
 7             sb.Append( " [ ");
 8             sb.Append( " {name: 'test1',data: [7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6]}, ");
 9             sb.Append( " {name: 'test2',data: [-0.2, 0.8, 5.7, 11.3, 17.0, 22.0, 24.8, 24.1, 20.1, 14.1, 8.6, 2.5] }, ");
10             sb.Append( " {name: 'Berlin',data: [-0.9, 0.6, 3.5, 8.4, 13.5, 17.0, 18.6, 17.9, 14.3, 9.0, 3.9, 1.0]}, ");
11             sb.Append( " {name: 'London',data: [3.9, 4.2, 5.7, 8.5, 11.9, 15.2, 17.0, 16.6, 14.2, 10.3, 6.6, 4.8]}] ");
12 
13             Response.Write(sb);
14         }


主要是JSON样式的数据组合。

还有就是JS函数eval的用法。

options.series是一个数组,因此我们可以使用push方法,将转换后的数据加入进去,终于完成。

转载于:https://www.cnblogs.com/mikechang/archive/2012/06/22/2558871.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Highcharts是一个用于制作交互式图表的JavaScript库,可以创建各种类型的图表,包括复合图表。 要创建一个复合图表,需要使用Highcharts的组合图表功能,该功能允许将多个图表组合在一起以显示多个数据系列。以下是一个创建复合图表的基本步骤: 1. 创建一个空的Highcharts图表对象。 2. 添加一个或多个数据系列,每个系列对应一个不同的图表类型,例如柱状图、折线图、面积图等。 3. 配置每个数据系列的选项,包括颜色、标签、线型等。 4. 配置图表的整体选项,例如标题、图例、坐标轴等。 5. 将图表渲染到HTML页面中。 下面是一个创建包含柱状图和折线图的复合图表的示例代码: ```javascript // 创建一个空的Highcharts图表对象 var chart = Highcharts.chart('container', { title: { text: '复合图表示例' }, xAxis: { categories: ['一月', '二月', '三月', '四月', '五月', '六月'] }, yAxis: [{ // 配置左侧Y轴 title: { text: '销售额' } }, { // 配置右侧Y轴 title: { text: '利润' }, opposite: true }], series: [{ // 添加第一个数据系列,使用柱状图 name: '销售额', type: 'column', yAxis: 0, data: [100, 200, 150, 250, 300, 200] }, { // 添加第二个数据系列,使用折线图 name: '利润', type: 'line', yAxis: 1, data: [50, 100, 80, 120, 150, 100] }] }); ``` 在上面的代码中,我们创建了一个包含柱状图和折线图的复合图表,其中左侧Y轴表示销售额,右侧Y轴表示利润。柱状图表示销售额,折线图表示利润。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值