1. 程式人生 > >1.簡單例項:ASP.NET下Echarts通過Ajax從資料庫中獲取資料

1.簡單例項:ASP.NET下Echarts通過Ajax從資料庫中獲取資料

後臺:Test01.ashx.cs:從資料庫獲取資料,通過HTTP請求(HttpContext)實現和前臺資料傳遞json資料
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.SqlClient;
using System.Data;
using System.Web.Script.Serialization;
 
namespace SSF_Echarts_WebApp_01
{
    ///<summary>
    /// Summary description for Test011
    ///</summary>     public class Test011 : IHttpHandler     {         SqlConnection con = new SqlConnection("Server=.\\sqlexpress;User Id=sa;Pwd=123456;DataBase=study_01");         DataSet ds = new DataSet();         SqlDataAdapter adapter = new SqlDataAdapter();         JavaScriptSerializer jsS = new
 JavaScriptSerializer();         List<object> lists = new List<object>();         //Series seriesObj = new Series();         string result = "";         public void ProcessRequest(HttpContext context)         {             //獲取一同傳送過來的引數             //string command = context.Request["cmd"];             context.Response.ContentType = "text/plain"
;             //用來傳回去的內容             //context.Response.Write("Hello World");             Get_Data01(context);         }         public void Get_Data01(HttpContext context)         {             string sql = @"select Month, data from Table_Echarts_Test_01 where ID<11";             ds = GetDataFromDatabase(sql);             lists = new List<object>();             foreach (DataRow dr in ds.Tables[0].Rows)             {                 var obj = new { Month = dr["Month"], data = dr["data"] };                 lists.Add(obj);             }             jsS = new JavaScriptSerializer();             result = jsS.Serialize(lists);             context.Response.Write(result);         }         public DataSet GetDataFromDatabase(string sql)         {             ds = new DataSet();             adapter = new SqlDataAdapter(sql, con);             adapter.Fill(ds);             return ds;         }         public bool IsReusable         {             get             {                 return false;             }         }     } }
前臺:Test01.aspx:通過Ajax將傳遞過來的json資料在回撥函式中物件化並賦給echarts資料來源。echarts其他引數都可以類似擴充套件,編寫複雜的邏輯。
<script type="text/javascript">
            var myChart1 = echarts.init(document.getElementById('main1'));
            var option1 = {
                tooltip: {
                    trigger: 'axis',
                    axisPointer: {            // 座標軸指示器,座標軸觸發有效
                        type: 'shadow'        // 預設為直線,可選為:'line' | 'shadow'
                    }
                },
                title: {
                    text: '',
                    subtext: '',
                },
                legend: {
                    data: ['data'],
                    right: '5%'
                },
                grid: {
                    left: '5%',
                    right: '0%',
                    bottom: '3%',
                    containLabel: true
                },
                xAxis: [
                    {
                        type: 'category',
                        data: []
                    }
                ],
                yAxis: [
                    {
                        type: 'value'
                    }
                ],
                series: [
                    {
                        name: 'New',
                        type: 'bar',
                        data: [100],
                        markPoint: {
                            data: [
                                { type: 'max', name: 'Max Value' },
                                { type: 'min', name: 'Min Value' }
                            ]
                        },
                    },
                ]
            };
            $.ajax({
                type: "post",
                async: false,
                url: "Test01.ashx",
                data: { cmd: "test" }, //傳送到伺服器的引數
                datatype: "json",
                success: function (result) {
                    if (result) {
                        eval("var transresult=" + result);
                        //alert(transresult[0].Month);
                        option1.xAxis[0].data = [transresult[0].Month, transresult[1].Month, transresult[2].Month, transresult[3].Month, transresult[4].Month, transresult[5].Month, transresult[6].Month, transresult[7].Month, transresult[8].Month, transresult[9].Month];
                        option1.series[0].data = [transresult[0].data, transresult[1].data, transresult[2].data, transresult[3].data, transresult[4].data, transresult[5].data, transresult[6].data, transresult[7].data, transresult[8].data, transresult[9].data];
                        myChart1.setOption(option1);
                    }
                },
                error: function (errorMsg) {
                    alert("request data failed!!!");
                }
            });
        </script>