仅从HighCharts禁用“打印图表”选项

时间:2016-08-04 15:26:12

标签: javascript c# jquery highcharts dotnethighcharts

我有一个DotNetHighchart,其中包含常用选项Print Chart,Download as PDF等等。

我只想删除打印图表选项,使用

在以前版本的高图中看起来像是轻而易举
.SetExporting(new Exporting
{
    Buttons = new ExportingButtons
    {
       PrintButton = new ExportingButtonsPrintButton 
       {
          Enabled = false
       }
    }
}

但是由于我不熟悉的原因,更新的highcharts模块只允许在ExportingOptions中使用一个类......

        .SetExporting(new DotNet.Highcharts.Options.Exporting
        {
            Buttons = new DotNet.Highcharts.Options.ExportingButtons
            {
                ContextButton = new DotNet.Highcharts.Options.ExportingButtonsContextButton
                {

                }
            }
        }

当设置为Enabled = False时,禁用所有看似愚蠢的菜单项,这意味着它可能是我自己的知识差距。

我在这里缺少什么?

2 个答案:

答案 0 :(得分:7)

我不确定你从哪里获得printButton,但这就是你要做的。您创建了一个Highcharts.setOptions javascript块并添加了exporting代码:

 Highcharts.setOptions({
   global: {
     useUTC: false
   },
   exporting: {
     buttons: {
       contextButton: {
         menuItems: [{
           text: 'Export to PNG (small)',
           onclick: function() {
             this.exportChart({
               width: 250
             });
           }
         }, {
           text: 'Export to PNG (large)',
           onclick: function() {
             this.exportChart();
           },
           separator: false
         }]
       }
     }
   }
 });

这只会创建2个导出按钮。要更改导出类型,请在exportChart()代码上进一步准备好。 然后,您将在页面下方显示图表代码。我不会将setOptions放在文档就绪部分。我会把你的实际图表准备好。工作fiddle

选项2 假设您知道默认导出菜单项始终按照它们现在的顺序排列。然后你可以得到导出菜单项:

var theExportOptions = Highcharts.getOptions().exporting.buttons.contextButton.menuItems;

现在,删除" print"部分:

theExportOptions.splice(0, 1);

关闭,但我们仍然有一个奇怪的分隔符。所以,现在删除它:

theExportOptions.splice(0, 2);

这似乎没问题。但是,您必须在加载任何图表之前将这些代码放在javascript中。我不喜欢这个选项,因为您依赖HighCharts总是拥有相同的出口选项订单/数量。

答案 1 :(得分:0)

借助css很简单

enter image description here

现在看上面的图片。我想隐藏第二个(打印图表)选项。所有选项都通过 html ul 和 li(无序列表)显示。所以我需要选择第二个孩子(因为我想隐藏打印选项)并让它不显示。

<style>
        ul.highcharts-menu li:nth-child(2){
            display: none !important;
        }
</style>

应用此 css 后,“打印图表”选项将如下图所示隐藏。 enter image description here

您可以通过更改子编号来隐藏任何选项。例如 li:nth-child(3) 或 li:nth-child(4) 等。我这样做了,当然,这会对你有所帮助。