echarts获取后台数据在前端展现

echarts获取后台数据在前端展现

这么一个简单的问题,居然卡了我一个星期……网上各种教程越看越乱,好在有老哥好心解答,在这里分享出来。
前端代码

<html>
<head>
    <meta charset="utf-8" />
    <title></title>
    <script src="echarts.js"></script>  
</head>
<body>
    <div id="main" style="height:400px;width:600px">
    </div>
    <script type="text/javascript">
        var myChart = echarts.init(document.getElementById('main'));
        myChart.setOption({                   //新建一个新图表
            title: { text: '异步加载数据' },
            tooltip: {},
            xAxis: { data: [] },
            yAxis: {},
            series: [{
                name: '销量',
                type: 'line',
                data: []
            }]
        });
            
       $.ajax({
            type:"post",
            url: 'Handler1.ashx',       //请求数据的地址
           success: function (result) {
               result = JSON.parse(result);
               console.log(result);
               myChart.setOption({        //加载数据图表  
                   xAxis: {
                       data: result.x    //这里给坐标赋值
                    },
                    series: [{
                        data: result.y
                    }]
                });
            },
            error: function (errorMsg) {
                alert("图表请求数据失败!");
            }
        });
    </script>
</body >
</html >

ashx文件(一般处理程序)
这个文件在vs2019里居然没有,2019的虽然更智能,但不如2017顺手。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Newtonsoft.Json;

namespace WebApplication12
{

    public class Handler1 : IHttpHandler
    {
        public void ProcessRequest(HttpContext context)
        {
            string[] categories = new string[] { "外套", "羊毛衫", "手套", "鞋子", "毛巾" };
            int[] data = new int[] { 5, 13, 21, 24, 9 };
            var obj = new                    //此步不能省略,需要打包发给前端
            {
                x = categories,
                y = data
            };
            string strJson =JsonConvert.SerializeObject(obj);  //将数据转换为json格式
            context.Response.Write(strJson);  
        }
        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
}

关键是要有Newtonsoft.json这东西,并且.Net框架不能低于3.5
这个文件就自己去找吧,我也不是官网下的,而且csdn不能上传重复的东西……

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在echarts饼图中后台获取数据,可以使用Ajax技术向后台发送请求,获取数据后再进行图表的渲染。具体步骤如下: 1. 在前端页面中引入echarts库和jQuery库。 2. 在页面中创建一个div元素,用于显示饼图。 3. 使用Ajax后台发送请求,获取数据。 4. 在Ajax的回调函数中,解析后台返回的数据,并将数据转换为echarts所需的格式。 5. 使用echarts库中的API,将数据渲染成饼图,并显示在页面中。 以下是一个示例代码: ```javascript // 引入echarts库和jQuery库 <script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.1.2/echarts.min.js"></script> <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script> // 创建一个div元素,用于显示饼图 <div id="pieChart" style="width: 600px;height:400px;"></div> // 使用Ajax后台发送请求,获取数据 $.ajax({ url: 'data.php', // 后台接口地址 type: 'get', dataType: 'json', success: function (res) { // 解析后台返回的数据,并将数据转换为echarts所需的格式 var data = []; for (var i = 0; i < res.length; i++) { data.push({ name: res[i].name, value: res[i].value }); } // 使用echarts库中的API,将数据渲染成饼图,并显示在页面中 var myChart = echarts.init(document.getElementById('pieChart')); var option = { title: { text: '饼图示例' }, series: [{ name: '访问来源', type: 'pie', radius: '55%', data: data }] }; myChart.setOption(option); } }); // 相关问题:

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值