2013-07-19 99 views
1

我有圖表選項如下圖所示:highcharts改變出口選項動態

'chart' : { 
    'defaultSeriesType' : 'bar', 
    'renderTo' : QIS.WERM.CcySpotValuationContent.LINE_CHART_AREA_ID_ 
    }, 
'title' : { 
    'text' : title 
    }, 
'exporting':{ 
    'buttons': { 
     'contextButton': {  
      'symbol':'url(/fxqis/public/images/excel.gif)', 
      'onclick': function() {} 
      } 
     } 
    } 

,但我要的是動態地使用不同的導出選項。如下所示:

if(something){ 
    'exporting':{ 
     'buttons': { 
      'contextButton': {  
       'symbol':'url(/fxqis/public/images/excel.gif)', 
       'onclick': function() {} 
       } 
     } 
    } 
} 
else{ 
    'exporting':{ 
     'enabled':false 
     } 
} 

我可以在圖表選項中添加if/else條件嗎?我怎樣才能做到這一點?

謝謝。

+0

是的,但它取決於你如何生成您的highcharts定義的javascript 。我們根據params/options/etc爲相關數據會話生成我們的javascript服務器端,然後將js推送到.NET註冊客戶端腳本塊代碼集中的頁面。 – wergeld

回答

0

裏面JSON是不可以的,但是你可以使用這樣的事情:

var exportingOPT = {}; 

    if(condition) 
     exportingOPT = { 
     param: true 
     } 
    else 
     exportingOPT = { 
     param: false 
     } 

然後在Highcharts的圖表配置使用:

chartOptions:exporingOPT 
1

你不想在你的默認圖表對象中操作(這是凌亂的不適合有組織的代碼)。找出您的默認選項並將其放置在圖表對象中。所以,如果它是默認啓用導出選項,那麼你的代碼是這樣的:

'chart' : { 
    'defaultSeriesType' : 'bar', 
    'renderTo' : QIS.WERM.CcySpotValuationContent.LINE_CHART_AREA_ID_ 
}, 
'title' : { 
    'text' : title 
}, 
'exporting':{ 
    'buttons': { 
    'contextButton': {  
     'symbol':'url(/fxqis/public/images/excel.gif)', 
     'onclick': function() {} 
     } 
    } 
} 

一旦這樣做了,請參考圖表對象和外部的定義的操作選項。您可以使用API​​中找到的方法或毫不誇張地操縱它就像你做任何其他對象:

if(something){ 
var chart = $('#container').highcharts(); 
chart.options.exporting.enabled = false; 
} 

您可以使用API​​來設置導出選項是這樣的:http://api.highcharts.com/highcharts#Chart.exportChart()

0

你是真正接近實現你所需要的,簡單的變化:

var ex; 
if(something){ 
    ex = { 
    'buttons': { 
     'contextButton': {  
      'symbol':'url(/fxqis/public/images/excel.gif)', 
      'onclick': function() {} 
      } 
    } 
    } 
} 
else{ 
    ex = { 
    'enabled':false 
    } 
} 

然後創建圖表時使用:

exporting: ex 

,這應該是足夠的。