asp.net web form 使用echart 图表

之前写了一篇关于 asp.net mvc 的echart 简单使用方法,今天来一个web form 页面的。本人菜鸟,写错的请谅解。

首先要讲一下: 在mvc里面,我们可以直接通过 前台ajax请求,后台 actionResult 返回json 的方法显示数据图表 ,

而在web form 里面,我平时是使用 Generic handler(一般性处理文件ashx来)来接受前台的ajax 请求,然后  context.Response.Write(jsonstr) 返回给前台。

 

 

首先在web form项目种加入一个新的 aspx 页面 ,比方说 MyDong.aspx , 在前台引入jquery.js 和 echart.js 

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

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script src="Scripts/jquery-1.10.2.min.js"></script>
</head>

<body>
    <form id="form1" runat="server">
        <div>
            <p>my page:动态</p>
            <div id="m2" style="width:600px ; height:400px;"></div>
        </div>
    </form>

    <script src="Scripts/ECharts/echarts-all.js"></script>
    <script type="text/javascript">

        $(function () {


            $.ajax({
                type: "POST",
                url: "/EchartHandler.ashx",
                data: {'TestAction':19 },
                success: function (data) {
                    //构造图表
                    var myChart2 = echarts.init(document.getElementById('m2'));
                    //配置参数
                    option2 = {
                        tooltip: {
                            trigger: 'axis',
                            axisPointer: {            
                                type: 'shadow'        // 默认为直线,可选为:'line' | 'shadow'
                            }
                        },
                        legend: data.le,
                        xAxis: data.xa,
                        yAxis: {},
                        series: data.se
                    };
                    //使用参数
                    myChart2.setOption(option2);
                },  //end success
                error: function (jqXHR) {

                }
            });  //end ajax



        });  //end page ready

    </script>

</body>
</html>

 

然后添加一个 ashx(一般性处理文件):  右键项目==》 ADD ==》 New Item ==》Generic handler

比方说,命名为  EchartHandler.ashx 

建立号了 ashx文件之后,可以看到原始自动生成的代码是:

   public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";

            //你在这里加入你自己的代码,比方说去database 里面查询数据,然后 构造json 
            //response.ContentType 改为 application/json 

            context.Response.Write("Hello World");
        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }

然后可以开始改写逻辑代码了(我用了三个类 ChartSeries 、 ChartXAxis 、 ChartLegend 来封装echart图片的配置 ):

public class EchartHandler : IHttpHandler
    {

        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "application/json";   //;  text/plain
            string qianta = context.Request["TestAction"].ToString();

            ChartSeries series1 = new ChartSeries();
            series1.type = "bar";
            series1.name = "2015";
            series1.data = new List<int>();
            series1.data.Add(89);
            series1.data.Add(92);
            series1.data.Add(94);
            series1.data.Add(85);
            List<ChartSeries> seriesList = new List<ChartSeries>() { series1 };

            ChartXAxis xAxis = new ChartXAxis();
            xAxis.type = "category";
            xAxis.data = new List<string>();
            xAxis.data.Add("牛奶");
            xAxis.data.Add("橙汁");
            xAxis.data.Add("可乐");
            xAxis.data.Add("雪碧");

            ChartLegend legend = new ChartLegend();
            legend.data = new List<string>();
            foreach (var sitem in seriesList)
            {
                legend.data.Add(sitem.name);
            }

            string jsonstr= JsonConvert.SerializeObject(new { se = seriesList, xa = xAxis, le = legend });
            context.Response.Write(jsonstr);
        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
 
    public class ChartSeries
    {
        public string type { get; set; }
        public string name { get; set; }
        public List<int> data { get; set; }
    }

    public class ChartXAxis
    {
        public string type { get; set; }
        public List<string> data { get; set; }
    }

    public class ChartLegend
    {
        public List<string> data { get; set; }
    }

 

写到这里就可以运行代码了

其实mvc 和 web form 最大的区别就是(纯属个人理解,可能理解有误): 

mvc里面可以通过controller 返回前台需要的各种 action ,如json 、 text 、file 等, 前台html 配合js 来操作显示内容界面。 

web form 希望通过服务器控件(runat=server) 直接像winForm一样开发,不用考虑html 和js 。当然web from 也提供了 ashx 一般性处理文件等 来接收前台页面 ajax post 过来的请求, 返回后依然可以通过js 和 html 控制显示内容。 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
ASP.NET Web是一种广泛用于开发Web应用程序的框架,它提供了一套丰富的工具和功能,让开发人员可以快速构建功能强大的Web应用程序。学习ASP.NET Web的路线可以分为以下几个阶段: 1. HTML和CSS基础:ASP.NET Web开发要求对HTML和CSS有一定的了解,因为这是Web页面的基础。学习HTML和CSS可以通过在线教程或书籍来进行,建议结合实践进行学习,掌握基本的页面布局和样式设计。 2. C#编程语言:ASP.NET Web使用C#作为主要的编程语言,掌握C#语法和面向对象编程的基本概念对于学习ASP.NET Web非常重要。可以通过学习C#教程和参考书籍来学习C#编程语言。 3. ASP.NET Web Forms:ASP.NET Web Forms是使用ASP.NET Web开发的一种方式,它基于事件驱动模型,提供了一系列的Web控件和服务器端事件处理机制。学习ASP.NET Web Forms可以通过官方文档和在线教程来进行,掌握页面生命周期、控件使用和事件处理是学习的重点。 4. ASP.NET MVC:ASP.NET MVC是使用ASP.NET Web开发的另一种方式,它基于模型-视图-控制器的设计模式,提供了更加灵活和可测试的开发方式。学习ASP.NET MVC需要理解MVC的基本概念和使用方法,可以通过参考官方文档和实践项目来进行学习。 5. 数据库和数据访问:在Web应用程序开发中,经常需要和数据库进行数据交互。学习ASP.NET Web的路线中,了解数据库基本知识和ASP.NET提供的数据访问技术是必要的。可以学习SQL语言和ADO.NET技术来实现数据库操作。 6. 安全和性能优化:学习ASP.NET Web还需要了解如何保证应用程序的安全性和性能优化。可以学习ASP.NET提供的身份验证和授权机制,了解常见的Web安全漏洞和预防措施。同时,学习ASP.NET提供的性能优化技巧,使应用程序在访问量较大时可以保持较好的性能。 总之,学习ASP.NET Web需要逐步掌握HTML和CSS、C#编程、ASP.NET Web Forms或MVC、数据库和数据访问、安全性和性能优化等方面的知识和技能。通过不断学习和实践,可以逐渐提升自己在ASP.NET Web开发领域的能力。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值