2013-08-21 1 views
1

나는 회사와 관련된 다양한 기계에 대한 정보가 들어있는 막대 차트가 있습니다.파일에 asp.net 차트 저장

기본적으로이 차트를 png 파일로 출력하고 싶지만 제대로 출력되지 않는 것 같습니다.

필자는 Google에서 수 시간 동안 좋은 자습서를 찾으려고 노력했지만 그 중 대부분은 이상한 타사 구성 요소를 사용하여 이미지를 다운로드했으며 실제로 그렇게하고 싶지 않습니다.

string tmpChartName = "/MachinesByCompanyChart.png"; 

    protected void GenerateBarChartBut_click(object sender, EventArgs e) 
     { 
      Chart1.Visible = false; 
      Chart2.Visible = true; 

      DataTable table = new DataTable(); 

      dal.getTotalAssetsByCompany("table", TAB1CompanyDDL.SelectedItem.Text); 

      table = dal.Results.Tables["table"]; 

      DataView dv = table.DefaultView; 

      Chart2.Series["Series1"].Points.DataBindXY(dv, "AssetType", dv, "Total"); 

      Chart2.Palette = ChartColorPalette.None; 

      Chart2.PaletteCustomColors = myGreenColorPalette; 


      string imgPath2 = Server.MapPath(tmpChartName); 
      Chart2.SaveImage(imgPath2, ChartImageFormat.Png); 
     } 

     protected void ExportAssetsByCompanyBut_click(object sender, EventArgs e) 
     { 

      Response.Clear(); 
      Response.ContentType = Chart1.ImageType.ToString(); 
      Response.AddHeader("Content-Disposition", "attachment; filename=" + tmpChartName); 
      StringWriter stringWrite = new StringWriter(); 
      HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite); 
      string headerTable = @""; 
      Response.Write(headerTable); 
      Response.Write(stringWrite.ToString()); 
      Response.End(); 
     } 

내가 제대로 작가 방법에 저장된 이미지를 전달하고 있는가 :

이 순간에 내 코드는?

+0

당신이 (차트 코드를 제공 할 수 aspx.cs 페이지에 코드를 작성 aspx.page 측면)? –

+0

나는 또한 코드를 제공합니다. 너는 이것을 시도 할 수있다. –

답변

4

이 시도,

세트 aspx.page

EnableViewState="true" 
ImageStorageMode="UseImageLocation" 

에서 차트의 두 가지 속성은

System.IO.MemoryStream imagestream = new System.IO.MemoryStream(); 
Chart1.SaveImage(imagestream, System.Web.UI.DataVisualization.Charting.ChartImageFormat.Png); 
byte[] imageByte = imagestream.ToArray(); 
+0

안녕하세요, 내가 함께 사용해야하는 다른 코드가 있습니까? –

+0

맘에 들어요,이 접근 방식은 작동하지만, 내가 원하는 것을하기 위해 코드를 편집해야했습니다. 나는 완전한 해결책으로 당신의 대답을 편집 할 것입니다. –

+0

@Kendo 당신은 여전히 ​​당신이해야 할 변화가 있습니까? –