2013-07-19 45 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 

,这应该是足够的。