Bild in UpdatePanel funktioniert nicht in Firefox

Ich habe ein Bild, das automatisch in einem Ajax UpdatePanel generiert wird. Dieses Bild ist ein Diagramm, das aus serverseitigem Code generiert wird. Beim Suchen in Google erkannte ich, dass es ein Fehler von FF war. Hat jemand eine Lösung?

Hier ist die Quelle (es enthält auch nicht benötigte Tags, ich habe gerade kopiert-einfügen)

<div>
   <asp:UpdatePanel ID="UpdatePanelGraph" runat="server" UpdateMode="Conditional">
       <ContentTemplate>
           <asp:Panel ID="pnlGraph" runat="server" CssClass="container">
                <div id="chart">
                     <Web:ChartControl ID="chartExchange" runat="server" Width="300px" Height="200px" BorderStyle="None" GridLines="both" DefaultImageUrl="../images/noData.png" ShowTitlesOnBackground="False" BorderWidth="1px" Padding="1" HasChartLegend="False" BottomChartPadding="20" TopChartPadding="5" RightChartPadding="5" LeftChartPadding="20">
                            <Border Color="211, 224, 242"></Border>
                            <YAxisFont ForeColor="115, 138, 156" Font="Tahoma, 7pt" StringFormat="Far,Center,Character,LineLimit"></YAxisFont>
                            <XTitle ForeColor="115, 138, 156" StringFormat="Center,Near,Character,LineLimit">
                            </XTitle>
                            <XAxisFont ForeColor="115, 138, 156" StringFormat="Near,Near,Character,NoClip"></XAxisFont>
                            <Background Type="LinearGradient" Color="#C9DEFD" ForeColor="Transparent" EndPoint="500, 500">
                            </Background>
                            <ChartTitle ForeColor="51, 51, 51" Font="Verdana, 9pt, style=Bold" StringFormat="Near,Near,Character,LineLimit">
                            </ChartTitle>
                            <Charts>
                                <Web:SmoothLineChart Name="buy" Legend="Blen">
                                    <Line Color="ActiveCaption"></Line>
                                    <DataLabels>
                                        <Border Color="Transparent"></Border>
                                        <Background Color="Transparent"></Background>
                                    </DataLabels>
                                </Web:SmoothLineChart>
                                <Web:ColumnChart Name="avgChart">
                                </Web:ColumnChart>
                            </Charts>
                            <YTitle ForeColor="115, 138, 156" StringFormat="Center,Near,Word,LineLimit"></YTitle>
                    </Web:ChartControl>
                </div>                
            </asp:Panel>
        </ContentTemplate>
    </asp:UpdatePanel>
</div>

Antwort auf "Bild in UpdatePanel funktioniert nicht in Firefox " 5 von antworten

EDIT:

Können Sie steuern, wie der grafische Name/Dateiname erstellt und im Browser gerendert wird? Könnte das Bild vom Browser zwischengespeichert werden? Ich hatte Probleme mit einer Graphing-Verpackung in Java/JSP mit AJAX-Aufrufen. Ich musste eine GUID an meine AJAX-URL-Abfragezeichenfolgenvariable anhängen, um das Caching-Problem zu beheben.

Welche Version von .NET verwenden Sie? Das 3.5-Framework verfügt über eine neue Grafiksteuerung. Ich habe ein paar Tage damit herumgespielt und war überrascht, wie mächtig es ist. Und ich habe es auch in UpdatePanels ohne Probleme verwendet.

Es sieht mir so aus, dass Sie das gleiche Problem auf FF oder IE haben sollten, unabhängig davon.

Ich habe auf Ihrem Updatepanel bemerkt, dass Sie

UpdateMode="Conditional"

haben, aber Sie geben keine Trigger an. Was das bedeutet, ist der Inhalt des Aktualisierungsbereichs wird nicht durch etwas anderes als alle Schaltflächen innerhalb des Update-Panels ausgelöst, die ich nicht sehe. Ändern Sie den UpdateMode in Always for debugging, und überprüfen Sie, ob das Problem dadurch behoben wird, und erarbeiten Sie den entsprechenden Trigger von dort aus.

Auch ist es keine gute Lösung, die Cachefähigkeit auf nocache löste mein Problem. Ich worte dies auf meinem Pageload

  Response.Cache.SetCacheability(HttpCacheability.NoCache);

Es funktioniert auch durch die Einstellung dieses Codes

<script type="text/javascript">

      var prm = Sys.WebForms.PageRequestManager.getInstance();
      prm.add_pageLoaded(pageLoaded);
      var c = 0;
      function pageLoaded(sender, args)
      {
      var img = document.getElementById("ctl00_ctl00_MainContent_MainContent_chartExchange");
      c++;
      img.src = img.src + "?" + c;
      }

</script>

Einige Grabungen mit FireBug led me to discover that exactly the same image URL is being returned whether I select 120 Ditë or 30 Ditë or mesataret. Looks like your charting control is returning the same image URL, even when the data behind it changes. Sounds to me like a bug in the control. führten mich zu der Entdeckung, dass genau die gleiche Bild-URL zurückgegeben wird, unabhängig davon, ob ich 120 Ditë oder 30 Ditë oder mesataret wähle. Sieht so aus, als ob das Diagrammsteuerelement dieselbe Bild-URL zurückgibt, auch wenn sich die dahinter folgenden Daten ändern. Klingt für mich wie ein Fehler im Steuerelement.

Möglicherweise können Sie eine web.config im WebCharts-Verzeichnis verwenden, um die Zwischenspeicherbarkeit von Bildern festzulegen, die von dort bereitgestellt werden, um zu bewirken, dass sie nie zwischengespeichert werden.