最近接到個圖形報表的需求,網絡上找了幾個插件,最後決定用highcharts
需要的文件
1、bll文件,添加到項目引用 http://files.cnblogs.com/files/lovejunjuan/HighChartsMvc.Model.rar
2、js文件,在項目中添加引用 http://files.cnblogs.com/files/lovejunjuan/highcharts.js
引用bll文件
@using HighChartsMvc.Model.Chart;
@using HighChartsMvc.Model.Chart.SeriesStlye;
引用js文件
<script src="@Url.Content("~/Content/Highcharts-4.2.6/js/highcharts.js")" type="text/javascript"></script>
ajax從後台獲取數據綁定到控件
$.ajax({ type: 'get', url: durl,//請求數據的地址 success: function (data) { var json = eval("(" + data + ")"); alert(json); var s = 1; for (var key in json.list) { json.list[key].y = json.list[key].age; //給Y軸賦值 xtext = json.list[key].name;//給X軸TEXT賦值 json.list[key].color = color[key]; } chart.series[0].setData(json.list);//數據填充到highcharts上面 }, error: function (e) { } }); var chart = new Highcharts.Chart({ chart: { renderTo: 'container', type: 'column' //顯示類型 柱形,可修改為其他類型,餅圖曲線圖等,數據綁定方式都一樣,非常方便 }, title: { text: '產量分布圖' //圖表的標題 }, xAxis: { categories: xtext }, yAxis: { title: { text: '產量' //Y軸的名稱 }, }, series: [{ name: "產量" }] });
json數據格式
public string DataTableToJson(DataTable dt) { StringBuilder jsonBuilder = new StringBuilder(); jsonBuilder.Append("{\""); jsonBuilder.Append("list"); jsonBuilder.Append("\":["); for (int i = 0; i < dt.Rows.Count; i++) { jsonBuilder.Append("{"); for (int j = 0; j < dt.Columns.Count; j++) { jsonBuilder.Append("\""); jsonBuilder.Append(dt.Columns[j].ColumnName); jsonBuilder.Append("\":"); //jsonBuilder.Append("\":\""); //判斷下是否純數字,highcharts插件不是純數字的值要加雙引號 if (IsNumber(dt.Rows[i][j].ToString())) { jsonBuilder.Append(dt.Rows[i][j].ToString()); } else { jsonBuilder.Append("\""); jsonBuilder.Append(dt.Rows[i][j].ToString()); jsonBuilder.Append("\""); } jsonBuilder.Append(","); //jsonBuilder.Append("\","); } jsonBuilder.Remove(jsonBuilder.Length - 1, 1); jsonBuilder.Append("},"); } jsonBuilder.Remove(jsonBuilder.Length - 1, 1); jsonBuilder.Append("]"); jsonBuilder.Append("}"); return jsonBuilder.ToString(); }
其他參數沒有過多研究,可查看官網