【问题标题】:Use redraw to get data from chart, Jsfiddle provided使用重绘从图表中获取数据,Jsfiddle 提供
【发布时间】:2013-07-04 14:02:49
【问题描述】:

我想在 highchart 上添加一个重绘函数来显示一个系列的一组新数据,iv 制作了按钮,但后面的代码正在苦苦挣扎。

HTML:

<div id="container" style="min-width: 400px; height: 400px; margin: 0 auto"></div>
<button id="button">redraw </button>

JS:

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();

但是我需要从图表中获取相同的数据;而不是删除系列,我需要它从现有图表中添加数据,所以我可以从 vb.net 代码中调用它

更新小提琴:

jsfiddle

【问题讨论】:

    标签: javascript asp.net .net highcharts jsfiddle


    【解决方案1】:

    使用redraw(),因为addSeries()已经包含了redraw函数。

    http://api.highcharts.com/highcharts#Chart.addSeries()

    【讨论】:

      【解决方案2】:

      您可以使用 setData() http://api.highcharts.com/highcharts#Series.setData() 函数来代替删除和添加新系列。如果你使用 addSeries() 你不需要使用 redraw(),因为 addSeries() 已经包含了 redraw 函数。

      http://api.highcharts.com/highcharts#Chart.addSeries()

      【讨论】:

        【解决方案3】:

        如果我理解正确,您是说按下按钮不会加载新系列。 如果是这样,那是因为您在change 处理程序中设置了按钮click 处理程序。这意味着您必须在注册之前单击 B 或 C 单选按钮。将其移出change 处理程序,如this,它会起作用。

        【讨论】:

        • 是的,可以,但是我需要它从 vb.net 连接它,以便可以从服务器获取数据,所以我需要将该功能放在 RegisterClientScriptBlock 中,任何想法如何
        猜你喜欢
        • 2012-10-29
        • 1970-01-01
        • 2022-01-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多