ASP.Net实现SQL动态绑定Echarts图表Demo完整源码附注释

运行效果图
在这里插入图片描述

前端页面代码

         <div class="line1">
            <div id="mainDiv" style="display: inline-block">
                <div id="dateContro" style="margin-left: 0px; margin-top: 0px; padding-top: 0px;">
                    查询时间:<input type="datetime-local" id="startDate" /><input type="datetime-local" id="endDate" />
                    <input type="button" id="checkBtn" value="查询" onclick="checkDate()" />
                </div>
                <div id="main1" style="width: 500px; height: 500px;">
                </div>
            </div>

js文件代码

 function loadfourLine() {
          var myChart = echarts.init(document.getElementById('main1'), 'macarons');
          // 显示标题,图例和空的坐标轴
          myChart.setOption({
              dataZoom: [
            {   // 这个dataZoom组件,默认控制x轴。
                type: 'slider', // 这个 dataZoom 组件是 slider 型 dataZoom 组件
                start: 0,      // 左边在 10% 的位置。
                end: 100         // 右边在 60% 的位置。
            },
            {   // 这个dataZoom组件,也控制x轴。
                type: 'inside', // 这个 dataZoom 组件是 inside 型 dataZoom 组件
                start: 0,      // 左边在 10% 的位置。
                end: 100         // 右边在 60% 的位置。
            }
              ],
              title: {
                  text: '温度测试'
              },
              tooltip: {
                  trigger: 'axis'
              },
              legend: {
                  data: ['手机', '电脑', '风扇', '空调'],
              },
              toolbox: {
                  show: true,
                  feature: {
                      mark: { show: true },
                      dataView: { show: true, readOnly: false },
                      magicType: { show: true, type: ['line', 'bar'] },
                      restore: { show: true },
                      saveAsImage: { show: true }
                  },
              },
              calculable: true,
              xAxis: [{
                  type: 'category',
                  boundaryGap: false, //取消左侧的间距
                  data: [],
                  axisLabel: {interval:0,rotate:40 },
                  axisPointer: {
                      type: 'shadow'
                  }
              }],
              grid: {
                  left: '3%',
                  right: '4%',
                  bottom: '3%',
                  containLabel: true
              },
              yAxis: {
                  type: 'value',
                  axisLabel: { formatter: '{value}(℃)' }
              },
              series: [
              {
                  name: '手机',
                  type: 'line',
                  data: []
              },
              {
                  name: '电脑',
                  type: 'line',
                  data: []
              },
              {
                  name: '风扇',
                  type: 'line',
                  data: []
              },
              {
                  name: '空调',
                  type: 'line',
                  data: []
              }
              ],
          });
          var dateData1 = [];    //类别数组(实际用来盛放X轴坐标值)    
          var temp1 = [];
          var temp2 = [];
          var temp3 = [];
          var temp4 = [];
          //myChart.showLoading();    //数据加载完之前先显示一段简单的loading动画
          $.ajax({
              type: 'get',//请求的方式
               url: './IHandler.ashx/ProcessRequest',//请求数据的地址
              dataType: 'json',        //返回数据形式为json
              async: "true",   //异步加载
              success: function (result) {
                  //请求成功时执行该函数内容,result即为服务器返回的json对象   
                  $.each(result.phone, function (index, item) {
                      dateData1.push(item.dateData1);
                      temp1.push(item.temValue);
                  });
                  $.each(result.computer, function (index, item) {
                      // dateData1.push(item.dateData1);    //逐个取出并放到时间数组当中
                      temp2.push(item.temValue);
                  });
                  $.each(result.fan, function (index, item) {
                      // dateData1.push(item.dateData1);
                      temp3.push(item.temValue);
                  });
                  $.each(result.kong, function (index, item) {
                      // dateData1.push(item.dateData1);
                      temp4.push(item.temValue);
                  });
                  myChart.setOption({        //加载数据图表
                      xAxis: {
                          data: dateData1
                      },
                      series: [{
                          data: temp1
                      },
                       {
                           data: temp2
                       },
                       {
                           data: temp3
                       },
                       {
                           data: temp4
                       }]
                  });
              },

              error: function (errorMsg) {
                  //请求失败时执行该函数
                  alert("图表请求数据失败!");
                  myChart.hideLoading();
              }
          });
      };
      loadfourLine();
//在此处调用时实时查询要加上setinterval函数





function checkDate() {
    var start = new Date($("#startDate").val()).getTime();
    var end = parseInt(new Date($("#endDate").val()).getTime());
    var myChart = echarts.init(document.getElementById('main1'), 'macarons');
    // 显示标题,图例和空的坐标轴
    myChart.setOption({
        dataZoom: [{
            id: 'dataZoomX',
            type: 'slider',
            xAxisIndex: [0],
            filterMode: 'filter', // 设定为 'filter' 从而 X 的窗口变化会影响 Y 的范围。
            start: 30,
            end: 70
        },
   {
       id: 'dataZoomY',
       type: 'slider',
       yAxisIndex: [0],
       filterMode: 'empty',
       start: 20,
       end: 80
   }],
        title: {
            text: '温度测试'
        },
        tooltip: {
            trigger: 'axis'
        },
        legend: {
            data: ['手机', '电脑', '风扇', '空调'],
        },
        toolbox: {
            show: true,
            feature: {
                mark: { show: true },
                dataView: { show: true, readOnly: false },
                magicType: { show: true, type: ['line', 'bar'] },
                restore: { show: true },
                saveAsImage: { show: true }
            },
        },
        calculable: true,
        xAxis: [{
            type: 'category',
            boundaryGap: false, //取消左侧的间距
            data: [],
            axisLabel: { interval: 0, rotate: 40 },
            axisPointer: {
                type: 'shadow'
            }
        }],
        grid: {
            left: '3%',
            right: '4%',
            bottom: '3%',
            containLabel: true
        },
        yAxis: {
            type: 'value',
            axisLabel: { formatter: '{value}(℃)' }
        },
        dataZoom: [{
            y: 755,
            type: 'slider',
            orient: "horizontal",
            show: true,
            start: 0,
            end: 90
        }],
        series: [
        {
            name: '手机',
            type: 'line',
            data: []
        },
        {
            name: '电脑',
            type: 'line',
            data: []
        },
        {
            name: '风扇',
            type: 'line',
            data: []
        },
        {
            name: '空调',
            type: 'line',
            data: []
        }
        ],
    });
    var dateData1 = [];    //类别数组(实际用来盛放X轴坐标值)    
    var temp1 = [];
    var temp2 = [];
    var temp3 = [];
    var temp4 = [];
    //myChart.showLoading();    //数据加载完之前先显示一段简单的loading动画
    $.ajax({
        type: 'get',//请求的方式
        url: './json/test.txt',//请求数据的地址
        dataType: 'json',        //返回数据形式为json
        async: "true",
        success: function (result) {
            //请求成功时执行该函数内容,result即为服务器返回的json对象   
            $.each(result.phone, function (index, item) {
                var tempdata = parseInt(new Date(item.dateData1).getTime());
                if (tempdata >= start  && tempdata <= end) {
                    dateData1.push(item.dateData1);
                    temp1.push(item.temValue);
                }
            });
            $.each(result.computer, function (index, item) {
                // dateData1.push(item.dateData1);    //逐个取出并放到时间数组当中
                var tempdata = parseInt(new Date(item.dateData1).getTime());
                if (tempdata  >= start  && tempdata <= end) {
                    temp2.push(item.temValue);
                }
            });
            $.each(result.fan, function (index, item) {
                // dateData1.push(item.dateData1);
                var tempdata = parseInt(new Date(item.dateData1).getTime());
                if (tempdata  >= start&& tempdata <= end) {
                    temp3.push(item.temValue);
                }
            });
            $.each(result.kong, function (index, item) {
                // dateData1.push(item.dateData1);
                var tempdata = parseInt(new Date(item.dateData1).getTime());
                if (tempdata >= start && tempdata <= end) {
                    temp4.push(item.temValue);
                }
            });
            myChart.setOption({        //加载数据图表
                xAxis: {
                    data: dateData1
                },
                series: [{
                    data: temp1
                },
	             {
	                 data: temp2
	             },
					{
					    data: temp3
					},
					{
					    data: temp4
					}]
            });
        },
        error: function (errorMsg) {
            //请求失败时执行该函数
            alert("图表请求数据失败!");
            myChart.hideLoading();
        }
    });
};

后端一般处理程序代码

 public string getdata()
    {
        MyClass mc = new MyClass();
        SqlConnection conn = mc.conn("sbdatabase");
        conn.Open();//切记连接完就要打开
        string _json;
        string _json1, _json2, _json3, _json4;
        Boolean isfirst1=true;
        Boolean isfirst2=true;
        Boolean isfirst3=true;
        Boolean isfirst4=true;
        string _cmd = "SELECT T_sb.sbID, T_sb.sbName, T_ls.ls_id, T_ls.sb_id, T_ls.sb_wd, T_ls.sb_yl, T_ls.sb_sj  FROM  T_ls INNER JOIN  T_sb ON T_ls.sb_id = T_sb.sbID";
        SqlDataReader dr = mc.getdatareader(_cmd);
        _json1 = "\"" + "phone" + "\"" + ":["; _json2 = "\"" + "computer" + "\"" + ":["; _json3 = "\"" + "fan" + "\"" + ":["; _json4 = "\"" + "kong" + "\"" + ":[";
        while (dr.Read())
        {
            //testbox.Text += dr["sbID"].ToString().Trim() ;
            //string a = dr["sbID"].ToString().Trim();
            //testbox.Text +=a;
            //  Boolean e15 = a=="sb20";
            //testbox.Text += e15;
            if (Equals(dr["sbID"].ToString().Trim(),"sb10") && isfirst1)
            {
                _json1 += "{";
                _json1 += "\"" + "temValue" + "\":\"" + dr["sb_wd"] + "\",";
                _json1 += "\"" + "dateData1" + "\":\"" + dr["sb_sj"] + "\"";
                _json1 += "}";
                isfirst1 = false;
            }
            else if (Equals(dr["sbID"].ToString().Trim(), "sb10") && !isfirst1)
            {
                _json1 += ",{";
                _json1 += "\"" + "temValue" + "\":\"" + dr["sb_wd"] + "\",";
                _json1 += "\"" + "dateData1" + "\":\"" + dr["sb_sj"] + "\"";
                _json1 += "}";
            }
            else if (Equals(dr["sbID"].ToString().Trim(), "sb20") && isfirst2)
            {
                _json2 += "{";
                _json2 += "\"" + "temValue" + "\":\"" + dr["sb_wd"] + "\",";
                _json2 += "\"" + "dateData1" + "\":\"" + dr["sb_sj"] + "\"";
                _json2 += "}";
                isfirst2 = false;
            }
            else if (Equals(dr["sbID"].ToString().Trim(), "sb20") && !isfirst2)
            {
                _json2 += ",{";
                _json2 += "\"" + "temValue" + "\":\"" + dr["sb_wd"] + "\",";
                _json2 += "\"" + "dateData1" + "\":\"" + dr["sb_sj"] + "\"";
                _json2 += "}";
            }
            else if (Equals(dr["sbID"].ToString().Trim(), "sb30") && isfirst3)
            {
                _json3 += "{";
                _json3 += "\"" + "temValue" + "\":\"" + dr["sb_wd"] + "\",";
                _json3 += "\"" + "dateData1" + "\":\"" + dr["sb_sj"] + "\"";
                _json3 += "}";
                isfirst3 = false;
            }
            else if (Equals(dr["sbID"].ToString().Trim(), "sb30") && !isfirst3)
            {
                _json3 += ",{";
                _json3 += "\"" + "temValue" + "\":\"" + dr["sb_wd"] + "\",";
                _json3 += "\"" + "dateData1" + "\":\"" + dr["sb_sj"] + "\"";
                _json3 += "}";
            }
            else if (Equals(dr["sbID"].ToString().Trim(), "sb40") && isfirst4)
            {
                _json4 += "{";
                _json4 += "\"" + "temValue" + "\":\"" + dr["sb_wd"] + "\",";
                _json4 += "\"" + "dateData1" + "\":\"" + dr["sb_sj"] + "\"";
                _json4 += "}";
                isfirst4 = false;
            }
            else if (Equals(dr["sbID"].ToString().Trim(), "sb40") && !isfirst4)
            {
                _json4 += ",{";
                _json4 += "\"" + "temValue" + "\":\"" + dr["sb_wd"] + "\",";
                _json4 += "\"" + "dateData1" + "\":\"" + dr["sb_sj"] + "\"";
                _json4 += "}";
            }
        }
        _json = "{" + _json1 +"],"+_json2 +"],"+_json3 +"],"+_json4 +"]"+"}";
        // testbox.Text += _json;
        conn.Close();
        return _json;
    }

    public void ProcessRequest (HttpContext context) {
        context.Response.ContentType = "text/plain";
        string s = getdata();
        context.Response.Write(s);
    }

完整Demo工程文件下载地址内含数据库备份文件
ASP.Net实现SQL动态绑定Echarts图表Demo完整源码

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LilyCoder

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值