highcharts+json+ashx 圖表動態數據綁定


<html lang="en">
<head><script src="common.js"></script>
    <script src="js/jquery-1.9.1.js"></script>
    <script type="text/javascript" charset="utf-8" src="js/jq.appframework-amiao.js"></script>
<script type="text/javascript" src="js/highcharts.js"></script>
</head>
<body>
  <div id="container" ></div>
</body>
</html>
<script>
    $(function () {
var PicDayList = '';
var categoriesList = '';
$.jsonP({
url:serverURL+'/ashx/picture_dian_day.ashx?dianid=3&YeJiMonth=4&CurtYear=2015',
success:function(data){
PicDayList = '';
var jsondata = $.parseJSON(data);
PicDayList += "{name:'"+jsondata[0].DianId+"' , data:[";
categoriesList+="[";
for (var i = 0; i < jsondata.length; i++) {
PicDayList += jsondata[i].ZongYeJi + ",";
categoriesList+="'"+jsondata[i].PostTime + "',";
}
PicDayList=PicDayList.substring(0,PicDayList.length-1);
categoriesList=categoriesList.substring(0,categoriesList.length-1);
PicDayList += "]}";
categoriesList += "]";
GetDate(PicDayList,categoriesList);
}
});
});


function GetDate(PicDayList,categoriesList){

    $('#container').highcharts({

        title: {
            text: '寶麗新娘各店日收入曲線圖',
            x: -20 //center
        },
        subtitle: {
            text: '店長每日上報',
            x: -20
        },
        xAxis: {
            categories: eval(categoriesList)
        },
        yAxis: {
            title: {
                text: '總收入(元)'
            },
            plotLines: [{
                value: 0,
                width: 1,
                color: '#808080'
            }]
        },
        tooltip: {
            valueSuffix: '萬'
        },
        legend: {
            layout: 'vertical',
            align: 'right',
            verticalAlign: 'middle',
            borderWidth: 0
        },
series:eval("["+ PicDayList+"]")
    });
}


 </script>


------------------------------------------------------------------------------

<%@ WebHandler Language="C#" Class="Handler" %>


using System;
using System.Web;
using System.Data;
using System.Collections.Generic;
using System.Web.Script.Serialization;
using KaoHe.BLL;


public class Handler : IHttpHandler
{


    KaoHe.BLL.upyeji upyejiBLL = new upyeji();
    public void ProcessRequest(HttpContext context)
    {
        context.Response.Clear();
        context.Response.ContentType = "application/json";
        string callback=context.Request["callback"];


        string YeJiMonth = context.Request.QueryString["YeJiMonth"];
        string CurtYear = context.Request.QueryString["CurtYear"];
        
        int DianId = int.Parse(context.Request.QueryString["DianId"]);
        DataTable dt = upyejiBLL.GetList(" TargetMonth=" + YeJiMonth + " and DianId=" + DianId + " and FROM_UNIXTIME(PostTime,'%Y')=" + CurtYear + "").Tables[0];
        string jsonString = DataTableToJSON(dt);
        context.Response.Write(callback+"('"+jsonString+"')");
    }


    public bool IsReusable
    {
        get
        {
            return false;
        }
    }


    private string DataTableToJSON(DataTable table)
    {
        List<Dictionary<string,object>> list=new List<Dictionary<string,object>>() ;
        
        foreach (DataRow row in table.Rows)
{
        Dictionary<string, object> dict = new Dictionary<string, object>();
        foreach (DataColumn col in table.Columns)
        {
            if (col.ColumnName == "DianId")
            {
                dict[col.ColumnName] = Common.Instance.GetDianName(row[col]);
            }
            else
            {
                if (col.ColumnName == "PostTime")
                {
                    dict[col.ColumnName] = KaoHe.Common.Util.UnixTimeToTime(long.Parse(row[col].ToString())).ToString( "dd");
                }
                else
                {
                    dict[col.ColumnName] = row[col];
                }
            }
        }
        list.Add(dict);
}
        JavaScriptSerializer jss = new JavaScriptSerializer();
        return jss.Serialize(list);
    }


}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章