Javascript 使用重画从图表中获取数据,JSFIDLE提供
我想在highchart上添加一个重画函数,以显示一系列的新数据集,iv制作了按钮,但后面的代码很难执行 HTML: redraw方法在哪里,当单击按钮时,我将如何调用它来重新绘制新数据 我现在更新了这个Javascript 使用重画从图表中获取数据,JSFIDLE提供,javascript,asp.net,.net,highcharts,jsfiddle,Javascript,Asp.net,.net,Highcharts,Jsfiddle,我想在highchart上添加一个重画函数,以显示一系列的新数据集,iv制作了按钮,但后面的代码很难执行 HTML: redraw方法在哪里,当单击按钮时,我将如何调用它来重新绘制新数据 我现在更新了这个 function redraw() { // Delete all the series. while (chart.series.length > 0) { chart.series[0].remove(false); } // Add the new series. cha
function redraw() {
// Delete all the series.
while (chart.series.length > 0) {
chart.series[0].remove(false);
}
// Add the new series.
chart.addSeries({ data: Highcharts.map(Array(12), Math.random) }, false);
// Redraw the chart.
chart.redraw();
但是,我需要从图表中获得相同的数据;我不需要删除序列,而是需要它从现有图表中添加数据,这样我就可以从vb.net代码中调用它
更新小提琴:
如果我理解正确,您的意思是按下按钮不会加载新系列。
如果是这样,那是因为您正在设置
单击处理程序中的更改处理程序的按钮。这意味着在注册之前你必须点击B或C收音机按钮。将它从更改处理程序中移出,它就会工作。您可以使用setData()函数,而不是删除和添加新的序列。如果使用addSeries(),则不需要使用redraw(),因为addSeries()包含了redraw函数
使用redraw(),因为addSeries()包含了redraw函数
是的,这是可行的,但我需要它从vb.net连接它,以便可以从服务器获取数据,所以我需要将该功能放在RegisterClient ScriptBlock中,你知道怎么做吗
function loadA(chart) {
chart.xAxis[0].update({
categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
});
chart.yAxis[0].setTitle({
text: "kHw"
});
chart.addSeries({
name: 'Rainfall11',
type: 'column',
color: '#08F',
data: [100, 200, 300, 400, 100, 200, 0, 0, 0, 0, 0, 0]
});
chart.addSeries({
name: 'Rainfall2',
type: 'column',
color: '#808000',
data: [100, 200, 300, 400, 100, 200, 0, 0, 0, 0, 0, 0]
});
chart.addSeries({
name: 'Rainfall3',
type: 'column',
color: '#FFA500',
data: [100, 200, 300, 400, 100, 200, 0, 0, 0, 0, 0, 0]
});
}
$(function() {
var chart = new Highcharts.Chart({
chart: {
renderTo: 'container',
type: 'column'
}
});
function redraw() {
// Delete all the series.
while (chart.series.length > 0) {
chart.series[0].remove(false);
}
// Add the new series.
chart.addSeries({ data: Highcharts.map(Array(12), Math.random) }, false);
// Redraw the chart.
chart.redraw();