C#ASP.NET使用Echarts制作统计图

卓越项目需要所以想要用ASP绘制统计图,但是从来没有接触过echarts和ajax,于是在哔哩哔哩上看了一些简短的课程大致了解了一下echarts和ajax.

前端代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication2.WebForm1" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
    <script src="lib/echarts.js"></script>
    <script src="lib/new_file.js"></script>
</head>
<body>
    <form id="form1" runat="server">
      <div id="myecharts" style="height: 600px;width: 600px;">
            
        </div>
    </form>
</body>
    <script>
        //讲echarts图表放入到指定的容器中
        var myChart = echarts.init(document.querySelector("#myecharts"));
        var option;
        
        option = {
            //图表标题
            title: {
                text: '浅尝Echarts'
            },
            tooltip: {},
            legend: {
                data: []
            },
            //x轴的值
            xAxis: {
                data: []
            },
            //Y轴的值,一般不用设置,会自动适配生成
            yAxis: {},
            series: [
                //{
                //    name: '销售量', 
                //    type: 'bar', 统计图的类型
                //    data: [5, 20, 36, 10, 10, 20] 各项的值
                //}
            ]
        };
        $.ajax({
            type: "POST", //获取数据的方式
            async: false, //是否异步,默认为true
            url: "WebForm1.aspx?action=LoadChart", //数据来源
            dataType: "json", //获取数据的类型
            success: function (obj){ //获取成功执行的事件
                console.log(obj);
                if (obj) {
                    option.xAxis.data = obj.xlist;
                    option.series = obj.series;
                    option.legend.data = obj.legend;
                    myChart.setOption(option);
                }
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) { //获取失败执行的事件
                alert(XMLHttpRequest.responseText);
                alert(XMLHttpRequest.status);
                alert(XMLHttpRequest.readyState);
                alert(textStatus);
            }
        });
    </script>
</html>

后台代码:

创建一个类,用来存储option对象中的series的值

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

namespace WebApplication2
{
    public class Class1
    {
        public string name { get; set; }
        public string type { get; set; }
        public int yAxisIndex { get; set; }
        public List<int> data { get; set; }
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Newtonsoft.Json;

namespace WebApplication2
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            string action = Request["action"];
            switch (action)
            {
                case "LoadChart":
                    LoadChart();
                    break;
                default:
                    break;
            }
        }
        private void LoadChart()
        {
            //创建lengend集合
            List<string> legendlist = new List<string>();
            legendlist.Add("销量");
            //创建X轴集合
            List<string> axixAxislist = new List<string>();
            axixAxislist.Add("水果");
            axixAxislist.Add("电器");
            axixAxislist.Add("生鲜");
            axixAxislist.Add("副食");
            axixAxislist.Add("烟酒");
            axixAxislist.Add("生活用品");
            //创建series集合
            List<Class1> serieslist = new List<Class1>();
            Class1 seriesobj = new Class1();
            seriesobj.name = "销量";
            seriesobj.type = "bar";
            seriesobj.data = new List<int>();
            int[] sz = new int[] { 20,50,90,120,150,190};
            for(int i = 0; i < sz.Length; i++)
            {
                seriesobj.data.Add(sz[i]);
            }
            serieslist.Add(seriesobj);
            var newobj = new
            {
                xlist = axixAxislist,
                lenged = legendlist,
                series=serieslist
            };
            //将数据转化为json格式
            string json = JsonConvert.SerializeObject(newobj);
            Response.Write(json);
            Response.Flush();
            Response.Close();
           
        }
    }
}

 注意:要记得引用Newtonsoft.Json,并在项目中写上using Newtonsoft.Json;

 效果图如下:

 

### 回答1: ASP.NET是一种使用Microsoft技术架构创建的Web应用程序开发框架,它允许开发人员使用C#或Visual Basic等编程语言来构建动态网站和Web应用程序。而Echarts则是一个基于JavaScript的数据可视化库,能够利用图表、地图、仪表盘等各种方式来展现数据。 结合ASP.NETEcharts可以实现数据展示与呈现的功能,通常需要使用ASP.NET MVC或ASP.NET Web Forms等技术架构来构建网站或应用程序,并嵌入Echarts图表组件,通过数据源提供数据并展示在页面上。 ASP.NET提供了强大的后端支持,能够进行数据加工、业务逻辑处理以及与数据库交互等操作,同时Echarts图表组件可以满足更多的数据可视化需求,包括折线图、柱状图、饼图、地图、仪表盘等类型,可以为数据提供更为直观、易懂的呈现方式。 通过ASP.NETEcharts的结合,我们可以轻松实现数据可视化,以及数据展示和呈现的需求,同时拥有更高的可扩展性和定制化程度。这种结合关系在许多企业级应用程序、数据分析平台、大屏展示系统等领域都得到了广泛的应用。 ### 回答2: ASP.NET是一个基于微软.NET技术的web开发框架,它提供了丰富的类库和开发工具,使开发人员可以快速构建Web应用程序。而ECharts是京东数据可视化团队针对大数据可视化场景设计开发的一个开源的数据可视化库,提供了多种图表类型和丰富的交互功能,可以帮助我们更好地展示数据。 当将EChartsASP.NET结合使用时,我们可以通过引用ECharts的相关JS库和CSS文件,在ASP.NET应用程序中轻松地创建各种图表,从而使我们的数据更加直观和易于理解。此外,ECharts还提供了丰富的配置选项,我们可以自由地根据自己的需求来设置图表的各种属性。 在使用ASP.NETECharts开发数据可视化应用程序时,我们可以利用ASP.NET提供的服务器端数据处理和计算功能,通过Ajax异步请求来获取数据,并使用ECharts将数据以图表形式展示出来。这种方式不仅可以快速构建Web应用程序,而且可以帮助我们更好地理解和分析数据。 总而言之,ASP.NETECharts是两个互补的技术,它们共同帮助我们快速构建数据可视化应用程序,使我们能够更好地展示和分析数据。 ### 回答3: ASP.NET是一种基于微软.NET框架的Web应用程序开发技术,而Echarts是一款流行的JavaScript可视化图表库。ASP.NET Echarts是将两者结合使用,实现在ASP.NET项目中嵌入Echarts图表的一种方法。 通过ASP.NET Echarts,可以快速搭建可视化界面,展示数据,对数据进行分析和展示。ASP.NET提供了丰富的数据处理和管理功能,而Echarts则提供了丰富的图表类型和展示样式。两者的结合,使得开发者可以更加便捷地实现数据可视化,实现更高效的数据分析和应用。 ASP.NET Echarts使用简单,只需引入相关的JavaScript文件和Echarts库,即可快速实现图表的呈现和交互。同时,ASP.NET Echarts也支持动态数据绑定和交互,使得数据展示更加灵活和实用。 总之,ASP.NET Echarts是一种对ASP.NET应用程序进行数据可视化处理的有效方法。它将ASP.NETEcharts相结合,简化了数据处理和可视化的开发过程,让开发者可以更加专注于数据处理与分析,实现更高效的数据可视化功能。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值