HighChat 动态绑定数据记录

最近刚开始做图形操作,纠结了一上午,highchat 动态绑定数据这块一直不知道怎么绑定,后来多次尝试,发现

1.x轴的数据是个数组格式,我从后台传到前台的时候,js中用数组进行处理数据,然后赋值到chat就不会报错,

2.y轴的数据和x轴数据还不一样,通过数组处理后发现还是无法显示。后来我在后台将数据添加了中括号[]括起来后,传到前台,然后前台在用eval()处理后就能够显示了

3.eval具有计算的功能,刚开始x轴的时候我用了eval对时间进行操作发现时间都是相减了,格式为:2017-07-27,格式居然为1998这样的。

下面是我的后台和前台的程序逻辑:

1.后台MVC控制器

1  public ActionResult Index()
2         {
3             return View();
4         }
5         public ActionResult GetAllReport()
6         {
7             var result = new { key = "2017-01-02,2017-01-02,2017-01-02,2017-01-02,2017-01-02,2017-01-02,2017-01-02,2017-01-02,2017-01-02,2017-01-02,2017-01-02,2017-01-02", value1 = "[9,23,24,54,67,1,23,45,23,444,55,89]", value2 = "[99,89,78,67,76,75,49,47,21,32,33,55]" };
8             return Json(result);
9         }

2.前台:

@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
    <script src="~/charts/highcharts/exporting.js"></script>
    <script src="~/charts/highcharts/highcharts.js"></script>
    <script src="~/charts/highcharts/highcharts_jquery-1.8.3.min.js"></script>
</head>
<body>
    <div id="container">

    </div>
</body>
</html>
<script type="text/javascript">
    $(function () {
        $.ajax({
            url: ‘/Home/GetAllReport‘,
            dataType: "json",
            type: "POST",
            data: null,
            success: function (data) {
                alert(data.key);
                Chart(data.key, data.value1, data.value2);
            }, error: function (jqXHR, textStatus, errorThrown) {
                alert("出错");
            }
        });
    });
    function Chart(key, value1, value2) {
        var mycars = new Array();
        var myvalue1 = new Array();
        var myvalue2 = new Array();
        var _tkey = key.split(‘,‘);
        for (var i = 0; i < _tkey.length; i++) {
            mycars[i] = _tkey[i];
        }
        var _tvalue1 = value1.split(‘,‘);
        for (var i = 0; i < _tvalue1.length; i++) {
            myvalue1[i] = _tvalue1[i];
        }
        var _tvalue2 = value2.split(‘,‘);
        for (var i = 0; i < _tvalue2.length; i++) {
            myvalue2[i] = _tvalue2[i];
        }
        var chart = new Highcharts.Chart(‘container‘, {
            title: {
                text: ‘不同城市的月平均气温‘,
                x: -20
            },
            subtitle: {
                text: ‘数据来源: WorldClimate.com‘,
                x: -20
            },
            xAxis: {
                categories: mycars
            },
            yAxis: {
                title: {
                    text: ‘温度 (°C)‘
                },
                plotLines: [{
                    value: 0,
                    width: 1,
                    color: ‘#808080‘
                }]
            },
            tooltip: {
                valueSuffix: ‘°C‘
            },
            legend: {
                layout: ‘vertical‘,
                align: ‘right‘,
                verticalAlign: ‘middle‘,
                borderWidth: 0
            },
            series: [{
                name: ‘东京‘,
                data: eval(value1)
            }, {
                name: ‘纽约‘,
                data: eval(value2)
            }]
        });

    }

</script>

另外呢还有一些 小处理

1.   2条折线重复的时候,鼠标放上去需要都显示数据

tooltip: {
shared: true
}

2.  去除highchat.com 网址

credits: {
 enabled: false
}

3. 刷新数据的时候 需要将上次的折线图清除

function clearTable() {
   var series = chart.series;
   if (series.length > 0) {
         series[0].remove(false);
     }
}
时间: 2024-11-03 21:00:52

HighChat 动态绑定数据记录的相关文章

HighChat动态绑定数据 数据后台绑定(四)

后台绑定数据,直接返回json数据 IList<SummaryHour> adHourData = summarybll.FindList(str); List<int> Hour = new List<int>() { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23 }; List<int> downNumber = new List&

MySQL使用笔记(七)排序和限制数据记录查询

By francis_hao    Dec 17,2016 排序数据记录查询 排序是指将筛选出符合条件的数据进行有序排放,有升序(ASC(默认))方式和降序(DESC)方式. mysql> select field1 field2-- from table_name [where 条件] order by fieldm1 [asc|desc],fieldm2 asc|desc,--; 这里的第二个排序字段,会在第一个排序字段相同的情况下进行排序.若第一个排序字段没有相同项,则第二个排序字段无作用

MySQL单表百万数据记录分页性能优化

原文地址:http://www.cnblogs.com/lyroge/p/3837886.html MySQL单表百万数据记录分页性能优化 背景: 自己的一个网站,由于单表的数据记录高达了一百万条,造成数据访问很慢,Google分析的后台经常报告超时,尤其是页码大的页面更是慢的不行. 测试环境: 先让我们熟悉下基本的sql语句,来查看下我们将要测试表的基本信息 use infomation_schemaSELECT * FROM TABLES WHERE TABLE_SCHEMA = 'dbna

SQL Server :理解数据记录结构

在SQL Server :理解数据页结构我们提到每条记录都有7 bytes的系统行开销,那这个7 bytes行开销到底是一个什么样的结构,我们一起来看下. 数据记录存储我们具体的数据,换句话说,它存在堆表里,或者存在聚集索引的叶子节点.数据记录结构是为了让SQL Server更高效的管理数据.我们来看下数据记录结构示意图: 上图中蓝色部分是所有数据记录部分,绿色部分是表结构里取决于定长/变长列的数据记录部分. 行头系统数据: 用做状态位1的第1字节(8位)是用来定义记录的属性: 第0位:版本信息

MySQL查询数据表中数据记录(包括多表查询)

MySQL查询数据表中数据记录(包括多表查询) MySQL查询数据表中数据记录(包括多表查询) 转自:http://www.baike369.com/content/?id=5355 在MySQL中创建数据库的目的是为了使用其中的数据. 使用select查询语句可以从数据库中把数据查询出来. select语句的语法格式如下: select selection_list // 要查询的内容,选择哪些列 from table_list // 从什么表中查询,从何处选择行 where primary_

java 每日习题(六)从文件收集数据记录到mysql

1. mysql建库,建表 2. 准备数据文件cpu.txt 1447836374319,169,0,01447836375346,498,0,01447836376346,250,0,01447836377347,0,0,01447836378347,497,0,01447836379347,0,0,01447836380347,498,0,01447836381348,0,0,01447836382348,498,0,01447836383348,0,0,01447836384348,248

多表数据记录查询

1.关系数据的各种操作 并(union) 把相同字段数目和字段类型的表合并到一起 笛卡尔积(cartesian product) 内连接 inner jion 所谓连接就是在表关系的笛卡尔积数据记录中,按照相应字段值的比较条件进行选择生成一个新的关系.连接又分为内连接,外连接,交叉连接. 内连接:在表关系的笛卡尔积数据记录中,保留表关系中所有匹配的数据记录,舍弃不匹配的数据记录. 按照匹配的条件可以分成自然连接,等值连接,和不等连接 自然连接: 表关系的笛卡尔积中,首先根据表关系中相同名称的字段

MySQL 单表百万数据记录分页性能优化

来源:一颗卤蛋 链接:http://www.cnblogs.com/lyroge/p/3837886.html 背景: 自己的一个网站,由于单表的数据记录高达了一百万条,造成数据访问很慢,Google分析的后台经常报告超时,尤其是页码大的页面更是慢的不行. 测试环境: 先让我们熟悉下基本的sql语句,来查看下我们将要测试表的基本信息 use infomation_schemaSELECT * FROM TABLES WHERE TABLE_SCHEMA = ‘dbname’ AND TABLE_

SQL语句技巧:查询存在一个表而不在另一个表中的数据记录

原文:SQL语句技巧:查询存在一个表而不在另一个表中的数据记录 方法一(仅适用单个字段)使用 not in ,容易理解,效率低 select A.ID from A where A.ID not in (select ID from B) 方法二(适用多个字段匹配)使用 left join...on... , "B.ID isnull" 表示左连接之后在B.ID 字段为 null的记录 select A.ID from A left join B on A.ID=B.ID where