2014-05-23 3 views
2

내 웹 응용 프로그램이 ASP.NET 차트를 표시해야하는 aspx 페이지를 만들었습니다. 차트를 생성 할 수는 있지만 페이지에 표시 할 수는 없습니다. 내 'Temp charts'폴더에서 생성 된 차트를 볼 수 있습니다.내 웹 응용 프로그램에서 aspx 페이지에 생성 된 ASP 차트가 표시되지 않습니다.

ASP.Net 4 및 .NET Framework 4를 사용 중이며 다음을 수행합니다.

<%@ Import Namespace="System" %> 
<%@ Import Namespace="System.Web" %> 
<%@ Import Namespace="System.Web.UI" %> 
<%@ Import Namespace="System.Web.UI.HtmlControls" %> 
<%@ Import Namespace="System.Web.UI.WebControls" %> 
<%@ Import Namespace="System.Web.UI.WebControls.WebParts" %> 
<%@ Import Namespace="System.Xml.Linq" %> 
<%@ Import Namespace="System.Collections.Generic" %> 
<%@ Import Namespace="System.Collections" %> 
<%@ Import Namespace="System.Linq" %> 
<%@ Import Namespace="System.Web.UI.DataVisualization" %> 
<%@ Import Namespace="System.Drawing" %> 
<%@ Import Namespace="System.Data.SqlClient" %> 
<%@ Import Namespace="System.Web.UI.DataVisualization.Charting" %> 
<%@ Page Language="C#" %> 
<%@ Register Assembly="System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" Namespace="System.Web.UI.DataVisualization.Charting" TagPrefix="asp" %> 
<script runat="server"> 
protected void Button1_Click(object sender, EventArgs e) 
    { 
    } 

</script> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title>Untitled Page</title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" /> 
    <asp:Chart ID="Chart1" runat="server" ImageLocation="~/TempCharts/ChartPic_#SEQ(200,2)" Height="200px" Width="535px" > 
     <BorderSkin /> 
     <Series> 
      <asp:Series Name="Series1" ChartType="Pie" YValuesPerPoint="2" > 
        <Points> 
         <asp:DataPoint AxisLabel="4 letter" YValues="20,0" /> 
         <asp:DataPoint AxisLabel="5 letter" YValues="10,0" /> 
         <asp:DataPoint AxisLabel="6 letter" YValues="5,0" /> 
         <asp:DataPoint AxisLabel="7 letter" YValues="16,0" /> 
        </Points> 
      </asp:Series> 
     </Series> 
     <ChartAreas> 
      <asp:ChartArea Name="ChartArea1" > 
      </asp:ChartArea> 
     </ChartAreas> 
    </asp:Chart> 
    </div> 
    </form> 
</body> 
</html> 

와의 Web.config에 아래 추가 :

코드입니다

<appSettings> 
    <add key="ChartImageHandler" value="storage=memory;timeout=30;" /> 
</appSettings> 

<system.webServer> 
    <handlers> 
    <remove name="ChartImageHandler" /> 
    <add name="ChartImageHandler" preCondition="integratedMode" verb="GET,HEAD,POST" 
     path="ChartImg.axd" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, 
     System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> 
</handlers> 
</system.webServer> 

하지만 페이지의 차트를 볼 수 없습니다입니다. 나는 무엇이든지 놓치고 있습니까?

해결 : ImageStorageMode 속성을 <asp:Chart>에 추가하고 "UseImageLocation"값을 설정했습니다.

+0

잠깐, aspx 페이지에 C# 코드 조각을 넣는 이유는 무엇입니까? 코드 숨김을 사용하면 더 명확 해집니다! 어떤 IDE를 사용하고 있습니까? 또한 나는 그것을 완벽하게 볼 수 있습니다. – fra9001

+0

웹 응용 프로그램에서이를 구현하고 있습니다. .cs 파일을 사용하기위한 몇 가지 제한 사항이 있습니다. Visual Studio를 사용하고 있지 않습니다. – EHVR

답변

0

다음 차트 설정에 대한 완전한있는 Web.Config는 다음과 같습니다

<configuration> 
     <appSettings> 
      <add key="ChartImageHandler" value="storage=file;timeout=30;dir=~/TempCharts/;"/> 
     </appSettings> 
     <system.webServer> 
      <validation validateIntegratedModeConfiguration="false"/> 
      <handlers> 
       <remove name="ChartImageHandler"/> 
       <add name="ChartImageHandler" preCondition="integratedMode" verb="GET,HEAD,POST" path="ChartImg.axd" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
      </handlers> 
     </system.webServer> 
     <system.web> 
      <httpHandlers> 
       <add path="ChartImg.axd" verb="GET,HEAD,POST" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/> 
      </httpHandlers> 
      <pages> 
       <controls> 
        <add tagPrefix="asp" namespace="System.Web.UI.DataVisualization.Charting" assembly="System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
       </controls> 
      </pages> 
      <compilation debug="true" targetFramework="4.0"> 
       <assemblies> 
        <add assembly="System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/></assemblies</compilation> 
     </system.web> 
    </configuration> 

현재 Web.Config 파일에 비교하고 누락 된 것을 확인하고, 비어있는 새 프로젝트를 만들 시스템에 대한 참조를 추가하려고합니다. Web.DataVisualization.dll 및 차트 설정을 자동으로 Web.Config 파일에 추가해야합니다.

희망이 도움이됩니다. true로 설정하면

+0

web.config에 누락 된 행을 추가했습니다. 그러나 결과는 같습니다. – EHVR

+0

이 이상합니다. 오류 메시지가 표시됩니까? 당신은 당신이 이것을 위해 비주얼 스튜디오를 사용하지 않는다고했는데, 당신은 무엇을 사용하고 있습니까? –

+0

내 웹 응용 프로그램 내에서 aspx pages.It을 구현/추가 할 수 있습니다. .NET 응용 프로그램입니다. ImageStorageMode = "UseImageLocation"속성을 에 추가하면 효과적입니다. – EHVR

0


시도이

<appSettings> 
<add key="ChartImageHandler" value="storage=memory;timeout=30;privateImages=false" /> 
</appSettings> 

<appSettings> 
<add key="ChartImageHandler" value="storage=memory;timeout=30;" /> 
</appSettings> 

에서 appSetting을 변경, 생성 된 이미지는 소유자 만 다운로드 할 수있는 경우 다음과 같은 유형의 몇 가지 신원 확인이 시행됩니다.

사용자가 인증되었습니다.
AnonymousID가 사용됩니다.
SessionID를 사용할 수 있습니다.

기본값은 true입니다.