2016-08-04 14 views
7

Ich habe eine DotNetHighchart mit dem üblichen Optionen Druck Schaubild, Download als PDF etc etc.Disable Druck Schaubild Option nur aus HighCharts

Ich möchte nur die Druckdiagramm Option entfernen, die wie eine Brise schien in früheren Versionen von highchart von

.SetExporting(new Exporting 
{ 
    Buttons = new ExportingButtons 
    { 
     PrintButton = new ExportingButtonsPrintButton 
     { 
      Enabled = false 
     } 
    } 
} 

mit Aber aus Gründen, ohne Wissen mir das aktualisierte highcharts Modul für eine Klasse erlaubt nur innerhalb ExportingOptions ...

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

       } 
      } 
     } 

Wenn die Option Enabled = False gesetzt ist, werden alle Menüpunkte deaktiviert, was albern erscheint, was bedeutet, dass es wahrscheinlich eine Lücke in meinem Wissen ist.

Was fehlt mir hier?

+0

Wenn Sie die Möglichkeit haben, globale Highcharts (http://api.highcharts.com/highcharts#global) über Javascript einzurichten, können Sie dies auf der Seite mit dieser Einstellung anwenden. Dies würde von allen Highcharts Graphen auf der Seite verwendet werden, auf die Sie es laden (natürlich zuerst globale Optionen laden). Der dotnethighcharts-Code wurde in etwa 2 Jahren nicht aktualisiert. Es sieht so aus, als ob alle Funktionen fehlen, die der Haupt-Highcharts-Javascript-Bibliothek hinzugefügt wurden. – wergeld

+0

@wergeld ah ich sehe. Haben Sie weitere Informationen dazu? Muss ich mein Diagramm auf eine Javascript-Variable initialisieren? – bjjrolls

+0

Dieser API-Link, den ich in meinen Kommentar eingefügt habe, sollte Ihnen sagen, was Sie brauchen. Sie erstellen ein Skript-Tag auf Ihrer HTML-Seite. Darin enthalten sind die Highcharts-Optionen, die alle Diagramme haben sollen. Jedes Diagramm, das auf dieser Seite erstellt wurde, verwendet diese Optionen, sofern es nicht explizit in der Option dieses Diagramms überschrieben wird. – wergeld

Antwort

4

Ich bin mir nicht sicher, wo Sie printButton bekommen, aber das ist, wie Sie es tun würden. Sie erstellen einen Highcharts.setOptions JavaScript-Block und fügen Sie im exporting Code:

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 
     }] 
     } 
    } 
    } 
}); 

Dieses nur 2 Export Schaltflächen erstellt. Um den Typ des Exports zu ändern, machen Sie bitte weiter auf exportChart() Code. Dann haben Sie Ihren Diagrammcode später auf der Seite. Ich würde die setOptions nicht in den Abschnitt Dokument bereit stellen. Ich würde Ihr aktuelles Diagramm in Dokument bereit stellen. Arbeiten fiddle.

Option 2 Angenommen, Sie wissen, dass die Standardelemente des Exportmenüs immer in der Reihenfolge angezeigt werden, in der sie sich gerade befinden. Dann können Sie die Exportmenüpunkte erhalten:

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

Nun, entfernen Sie den „Druck“ Abschnitt:

theExportOptions.splice(0, 1); 

schließen, aber wir haben noch einen seltsamen Teiler haben. So, jetzt entfernen Sie es:

theExportOptions.splice(0, 2); 

Dies scheint in Ordnung. Aber Sie müssen diesen Code in JavaScript einfügen, bevor Sie ein Diagramm laden. Ich mag diese Option nicht, da Sie darauf angewiesen sind, dass HighCharts immer die gleiche Reihenfolge/Menge an Exportoptionen aufweist.

+1

genial, vielen Dank. Ich ging mit der ersten Option auf Ihre Empfehlung und es ist jetzt gelöst. – bjjrolls