gpt4 book ai didi

jquery - 动态设置 Highcharts 系列和类别数据

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

我尝试使用以下代码通过 AJAX 调用更新图表

$j(document).ready(function () {
$j("#filter").click(function () {
BuildReport();
});

$j("#container").highcharts({
chart: {
type: 'column',
marginRight: 130,
marginBottom: 100
},
title: {
text: 'SEs open by Group',
x: -20 //center
},
yAxis: {
title: {
text: ''
},
min: 0,
allowDecimals: false
},
xAxis: {},
tooltip: {
formatter: function () {
return '<b>' + this.x + '</b><br/>' +
this.series.name + ': ' + this.y + '<br/>' +
'Total: ' + this.point.stackTotal;
}
},
plotOptions: {
column: {
stacking: 'normal',
cursor: 'pointer',
}
}
},
legend: {
layout: 'vertical',
align: 'right',
verticalAlign: 'top',
x: -10,
y: 100,
borderWidth: 0
},
series: {}
});

BuildReport();
});

function SetChartSeries(series) {
debugger;
chart = $j("#container").highcharts();
chart.xAxis[0].setCategories(getReportCategories(series));
chart.series = $j.map(series, function (item) {
return {
name: item.Name,
color: item.Colour,
data: $j.map(item.Items, function (list) {
return {
name: list.Category,
y: list.Value,
id: list.ID
};
})
};
});
}

function getReportCategories(data) {
var catArray = [];
$j.each(data, function (index, value) {
$j.each(value.Items, function (index, value) {
if ($j.inArray(value.Category, catArray)) {
catArray.push(value.Category);
}
});
});

return catArray;
}

function BuildReport() {
$j.ajax({
url: "ChartDataHandler.ashx",
dataType: "json",
cache: false,
success: function (data) {
SetChartSeries(data.Series);
}
});
}

当页面加载或单击过滤器按钮时,BuildReport 调用处理程序并将系列数据传递给 SetChartSeries。从这里我可以看到图表属性已设置,但图表从未绘制。我做错了什么明显的事情吗?

最佳答案

如果您想创建新系列,您需要使用 Chart.addSeries()方法

如果您想在现有系列中设置新数据,您需要使用 Series.setData()方法。

正如我所见,您为每个请求创建新系列并使用 addSeries 方法

关于jquery - 动态设置 Highcharts 系列和类别数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16218189/

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