2016-10-20 21 views
0

ハイチャートでasynドリルダウンを使用しています。 私はドリルダウンすると、私はこの部分は正常に動作しドリルアップ時にハイチャートのトップレベルにデータを動的に追加

drilldown: function(e) { 
    ..... 
    // Service call to get data for the chart 
    clientObj.getAggData(srcTbl, fields, function(res) { 

    // data returned from service is set to the chart series 
    chart.addSeriesAsDrilldown(e.point, res); 

    }, nextLevel, filterStr); 
} 

(ドリルダウンイベントで)データを取得するためにサービスを呼び出すと、一連の更新をしています。私は同様にドリルアップするときに同様のことをしたい。サービスを呼び出し、チャートオブジェクトの 'ドリルアップ'イベントで行わなければならない最上位レベルのデータを取得したい。

現在、私はドリルアップ時にchart.drilldownLevels.seriesに保存されているデータが取得されています。 addSeries APIを使用しようとすると、chart.drilldownLevels.seriesに格納されているシリーズの上に別のシリーズが追加されます。

他のAPI(update()など)も機能しません。

+0

このライブを再作成できますか? jsfiddleで? – morganfree

答えて

1

あなたは、新しいデータポイントを追加する場合は、あなたがthis.series[0].setData()

this.series[1].setData([{ 
      name: 'Dieren', 
      y: 5, 
      drilldown: 'animals' 
      }, { 
      name: 'Fruit', 
      y: 2, 
      drilldown: 'fruits' 
      }, { 
      name: "Auto's", 
      y: 4 
      }, { 
      name: "test's", 
      y: 4 
      }], false, false); 

DEMOを呼び出す必要があり、同じイベントをドリルアップ使用し、必要なレベルの値を割り当て、

events: { 
    drillup: function(e) { 
     this.options.series[0].data[0] = { 
     name: 'Databases', 
     y: 20, 
     drilldown: 'dbs' 
     } 
    } 
    } 

することができます

DEMO USING CUSTOM Button

関連する問題