gpt4 book ai didi

asp.net - jQuery HighCharts 和 MVC 2 应用程序中的简单条形图?

转载 作者:行者123 更新时间:2023-12-01 00:54:28 25 4
gpt4 key购买 nike

我正在尝试使用 MVC 中 JSon 操作方法的结果创建一个非常简单的条形图。我得到了实际的条形图,但我不太了解这些选项,所以我基本上在猜测该怎么做。我使用 HighCharts 站点上的示例作为如何从服务器代码获取数据并创建图表的示例。不同之处在于我的图表比示例更简单。我没有每个用户的类别(如水果示例),我只有一个用户和记录的小时数。

这是 HighCharts jQuery 代码:

function getHighChart() {
var actionUrl = '<%= Url.Action("GetChartData") %>';
var customerId = $('#customersId').val();
var startdate = $('.date-pickStart').val();
var enddate = $('.date-pickEnd').val();

var options = {
chart: {
renderTo: 'chart-container',
defaultSeriesType: 'bar'
},
title: {
text: 'Statistik'
},
xAxis: {
categories: []
},
yAxis: {
title: {
text: 'Timmar'
}
},
series: []
}
jQuery.getJSON(actionUrl,
{ customerId: customerId, startdate: startdate, enddate: enddate }, function (items) {
var series = {
data: []
};

$.each(items, function (itemNo, item) {
series.name = item.Key;
series.data.push(parseFloat(item.Value));
});

options.series.push(series);
var chart = new Highcharts.Chart(options);
});
}

这是返回 JSon 的操作方法:

    public JsonResult GetChartData(string customerId, string startdate, string enddate)
{
int intcustomerId = Int32.Parse(customerId);

var emps = from segment in _repository.TimeSegments
where
segment.Date.Date >= DateTime.Parse(startdate) &&
segment.Date.Date <= DateTime.Parse(enddate)
where segment.Customer.Id == intcustomerId
group segment by segment.Employee
into employeeGroup
select new CurrentEmployee
{
Name = employeeGroup.Key.FirstName + " " + employeeGroup.Key.LastName,
CurrentTimeSegments = employeeGroup.ToList(),
CurrentMonthHours = employeeGroup.Sum(ts => ts.Hours)
};
Dictionary<string, double > retVal = new Dictionary<string, double>();
foreach (var currentEmployee in emps)
{
retVal.Add(currentEmployee.Name, currentEmployee.CurrentMonthHours);
}
return Json(retVal.ToArray(), JsonRequestBehavior.AllowGet);
}

我能够创建一个饼图,但现在当我想创建一个简单的条形图时,我无法弄清楚 jQuery 代码中的内容,所以我得到的结果是一个条形图,其中首先图例中列出的唯一用户是数组中的最后一个用户。其次,工具提示显示 x = [用户名], y = 29,而不是我在饼图中得到的 [用户名]: 29。

我如何通过这个 JSon 在 HighCharts 中创建这样一个简单的条形图?

最佳答案

我使用:

//Controller action:
public JsonResult GetData(int id)
{
Dictionary<int, double> data = this.repository.GetData(id);
return Json(data.ToArray(), JsonRequestBehavior.AllowGet);
}

查看:

<script>
var chart1;
$(document).ready(function () {
chart1 = new Highcharts.Chart({
chart: {
renderTo: 'chart-container-1',
defaultSeriesType: 'scatter',
events: {
load: requestData
}
},
options...
,
series: [{
name: 'some data',
data: []
}]
});
}
);

function requestData() {
$.ajax({
url: '/ControllerName/GetData?id=@(Model.Id)',
success: function (items) {
$.each(items, function (itemNo, item) {
chart1.series[0].addPoint([item.Key,item.Value], false);
});
chart1.redraw();
},
cache: false
});
}
</script>
<div id="chart-container-1"></div>

所以基本上我使用 addPoint('array of x,y',false 不重绘图表)

关于asp.net - jQuery HighCharts 和 MVC 2 应用程序中的简单条形图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4699389/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com