문제

Ajax UpdatePanel 내부에서 자동으로 생성되는 이미지가 있습니다. 이 이미지는 서버 측 코드에서 생성 된 그래프입니다. Google에서 검색하면 FF의 버그라는 것을 깨달았습니다. 아무도 해결책이 있습니까?

소스는 다음과 같습니다 (또한 불필요한 태그가 포함되어 있습니다.

<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>
도움이 되었습니까?

해결책 2

또한 좋은 솔루션은 아닙니다. 캐시 션 성을 노크시를 해결하여 문제를 해결했습니다. 나는 내 pageload에서 이것을 걱정한다

  Response.Cache.SetCacheability(HttpCacheability.NoCache);

또한이 코드를 설정하여 작동합니다

<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>

다른 팁

어떤 버전의 .NET을 사용하고 있습니까? 3.5 프레임 워크에는 새로운 그래프 컨트롤이 있습니다. 나는 며칠을 가지고 놀았고 그것이 얼마나 강력한 지 놀랐습니다. 또한 문제없이 업데이트 패널에서 사용했습니다.

FF 또는 IE에서도 동일한 문제가 있어야한다고 생각합니다.

나는 당신이 가지고있는 당신의 업데이트 패널을 발견했습니다

UpdateMode="Conditional"

그러나 트리거를 지정하지 않습니다. 즉, 업데이트 패널의 내용은 내가 보지 못하는 업데이트 패널 내부의 버튼 이외의 다른 것에 의해 트리거되지 않는다는 것입니다. UpdateMode를 항상 디버깅을 위해 변경하고 문제가 해결되는지 확인하고 거기에서 적절한 트리거를 해결하십시오.

편집하다:

그래픽 이름/파일 이름이 브라우저로 생성되고 렌더링되는 방법을 제어 할 수 있습니까? 이미지를 브라우저로 캐시 할 수 있습니까? ajax 호출로 Java/JSP에서 그래프 포장에 문제가있었습니다. 캐싱 문제를 해결하기 위해 Ajax URL 쿼리 문자열 변수에 대한 안내서를 추가해야했습니다.

일부 파기 개똥 벌레 120 Ditë 또는 30 Ditë 또는 Mesataret을 선택하든 정확히 동일한 이미지 URL이 반환되고 있음을 알게되었습니다. 차트 컨트롤이 동일한 이미지 URL을 반환하는 것처럼 보입니다. 컨트롤의 버그처럼 들립니다.

WebCharts 디렉토리에서 Web.config를 사용하여 거기에서 제공된 이미지의 캐시 가능성을 설정하여 캐시되지 않도록 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top