Diagrammbildrendering (Diagrammsteuerelemente)
Im Diagrammsteuerelement für ASP.NET können Sie definieren, wie das Diagrammsteuerelement das Diagrammbild rendert. Verwenden Sie hierzu die RenderType-Eigenschaft. Drei Optionen stehen zur Verfügung.
Option "ImageTag"
Das Diagrammsteuerelement für ASP.NET rendert Diagrammbilder standardmäßig mithilfe dieser Methode. Dies ist die einfachste Renderingmethode. Sie speichert das gerenderte Diagrammbild entweder im Arbeitsspeicher oder als temporäre Datei zwischen. Dies verbessert die Leistung für Diagramme mit statischen Daten und Darstellungen, auf die häufig zugegriffen wird.
Verwendung
Legen Sie die RenderType-Eigenschaft auf ImageTag fest. Sie können angeben, wie gerenderte Bilder verwaltet werden. Weitere Informationen finden Sie unter Bilddateiverwaltung.
Option "BinaryStreaming"
Durch diese Option wird das Diagrammbild direkt an den Client übertragen, ohne dass es auf dem Server gespeichert wird. Wenn die ASP.NET-Seite angefordert wird, verhält sie sich hierdurch wie ein statisches Bild, sodass Sie die ASP.NET-Seite in einen beliebigen <img>-HTML-Tag einfügen können. Beispiel:
<img src="DetailedChart.aspx" />
Verwenden Sie diese Option, um die Leistung zu verbessern, wenn sich die Daten und die Darstellung eines Diagramms häufig ändern oder wenn ein Servercluster verwendet wird. Sie birgt jedoch die folgenden Nachteile:
Bilder werden nicht zwischengespeichert.
AJAX- oder Interaktivitätsfunktionen werden nicht unterstützt. Um die Interaktivitätsfunktionen verwenden zu können, müssen Sie diese Option zusammen mit der ImageMap-Option angeben.
Das Diagrammsteuerelement kann nicht zusammen mit anderen HTML-Elementen in der gleichen Quelldatei verwendet werden.
Verwendung
Wenn Sie diese Option verwenden, darf die ASP.NET-Seite, auf der sich das Diagrammsteuerelement befindet, nur die folgenden Elemente enthalten:
Die @ Page-Direktive
Das <asp.Chart>-Element
Beliebigen Laufzeitcode
Im folgenden Beispiel ist eine ASP.NET-Seite zu sehen, die ein binäres, per Streaming übertragenes Diagrammsteuerelement enthält.
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="_Default" %>
<asp:Chart ID="Chart2" runat="server" RenderType="BinaryStreaming">
<series>
<asp:Series Name="Series1" ChartArea="ChartArea1">
<Points>
<asp:DataPoint YValues="4" />
<asp:DataPoint YValues="5" />
</Points>
</asp:Series>
</series>
<chartareas>
<asp:ChartArea Name="ChartArea1" />
</chartareas>
</asp:Chart>
Option "ImageMap"
Diese Methode wird verwendet, wenn Sie Interaktivitätsfunktionen zusammen mit der BinaryStreaming-Option verwenden möchten. In dieser Option werden zwei ASP.NET-Seiten verwendet:
Die erste Seite enthält das binäre, per Streaming übertragene Diagramm. Diese Seite verwendet die BinaryStreaming-Option in der RenderType-Eigenschaft des Diagrammsteuerelements.
Die zweite Seite fordert das binäre, per Streaming übertragene Diagramm an und wendet Zuordnungsbereiche auf das übertragene Diagrammbild an.
Verwendung
So richten Sie die ASP.NET-Seiten für die ImageMap-Option ein
Erstellen Sie die erste Seite mithilfe der BinaryStreaming-Option im Diagrammsteuerelement.
Legen Sie auf der ersten Seite alle Daten-, Darstellungs- und Interaktivitätseigenschaften so fest, wie Sie dies für ein vollständig angepasstes und interaktives Diagramm machen würden, z. B. Reihen-QuickInfos. Fügen Sie außerdem der ersten Seite oder der zugehörigen Code-Behind-Datei den gesamten Laufzeitcode hinzu.
Kopieren Sie das Diagrammsteuerelement von der ersten Seite, und fügen Sie es in die zweite Seite ein.
Kopieren Sie den gesamten Laufzeitcode von der ersten Seite, und fügen Sie ihn in die zweite Seite oder die Code-Behind-Datei ein.
Legen Sie auf der zweiten Seite die RenderType-Eigenschaft des Diagrammsteuerelements auf ImageMap und die ImageLocation-Eigenschaft auf die Position der ersten Seite fest.
Tipp
Um ein per Streaming übertragenes Bild und die Imagemap zu synchronisieren, müssen die Daten- und Darstellungseigenschaften des Diagrammsteuerelements sowie der Laufzeitcode in den beiden ASP.NET-Seiten identisch sein.