2010-03-16 3 views
6

난 뒤에 코드에서 .net 차트 컨트롤을 완전히 만들고 해당 차트를 웹 페이지의 특정 위치에 삽입하려고합니다.렌더링 된 HTML 페이지에 코드 숨김 차트를 추가하는 방법은 무엇입니까?

using System; 
using System.Drawing; 
using System.Web.UI.DataVisualization.Charting; 

public partial class _Default : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     //SET UP THE DATA TO PLOT 
     double[] yVal = { 80, 20 }; 
     string[] xName = { "Pass", "Fail" }; 

     //CREATE THE CHART 
     Chart Chart1 = new Chart(); 

     //BIND THE DATA TO THE CHART 
     Chart1.Series.Add(new Series()); 
     Chart1.Series[0].Points.DataBindXY(xName, yVal); 

     //SET THE CHART TYPE TO BE PIE 
     Chart1.Series[0].ChartType = System.Web.UI.DataVisualization.Charting.SeriesChartType.Pie; 
     Chart1.Series[0]["PieLabelStyle"] = "Outside"; 
     Chart1.Series[0]["PieStartAngle"] = "-90"; 

     //SET THE COLOR PALETTE FOR THE CHART TO BE A PRESET OF NONE 
     //DEFINE OUR OWN COLOR PALETTE FOR THE CHART 
     Chart1.Palette = System.Web.UI.DataVisualization.Charting.ChartColorPalette.None; 
     Chart1.PaletteCustomColors = new Color[] { Color.Blue, Color.Red }; 

     //SET THE IMAGE OUTPUT TYPE TO BE JPEG 
     Chart1.ImageType = System.Web.UI.DataVisualization.Charting.ChartImageType.Jpeg; 

     //ADD A PLACE HOLDER CHART AREA TO THE CHART 
     //SET THE CHART AREA TO BE 3D 
     Chart1.ChartAreas.Add(new ChartArea()); 
     Chart1.ChartAreas[0].Area3DStyle.Enable3D = true; 

     //ADD A PLACE HOLDER LEGEND TO THE CHART 
     //DISABLE THE LEGEND 
     Chart1.Legends.Add(new Legend()); 
     Chart1.Legends[0].Enabled = false; 
    } 
} 

내가

ID = "차트"와 사업부 내부의 차트 컨트롤을 렌더링 할 : 여기

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> 

<!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></title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div id="chart"></div> 
    </form> 
</body> 
</html> 

뒤에 코드입니다 : 여기

내 HTML 페이지입니다 도와 주셔서 감사합니다!

답변

5

어떤 히치없이 차트 Framework가 설치 가정 : -

보기 : -

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> 

<!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></title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div id="chart"></div> 
     <asp:Chart id="Chart1" runat="server"/> 
    </form> 
</body> 
</html> 

Codebehind가 : -

using System; 
using System.Drawing; 
using System.Web.UI.DataVisualization.Charting; 

public partial class _Default : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     //SET UP THE DATA TO PLOT 
     double[] yVal = { 80, 20 }; 
     string[] xName = { "Pass", "Fail" }; 

     //CREATE THE CHART 
     // Don't need to create the chart because it's a control! 

     //BIND THE DATA TO THE CHART 
     Chart1.Series.Add(new Series()); 
     Chart1.Series[0].Points.DataBindXY(xName, yVal); 

     //SET THE CHART TYPE TO BE PIE 
     Chart1.Series[0].ChartType = System.Web.UI.DataVisualization.Charting.SeriesChartType.Pie; 
     Chart1.Series[0]["PieLabelStyle"] = "Outside"; 
     Chart1.Series[0]["PieStartAngle"] = "-90"; 

     //SET THE COLOR PALETTE FOR THE CHART TO BE A PRESET OF NONE 
     //DEFINE OUR OWN COLOR PALETTE FOR THE CHART 
     Chart1.Palette = System.Web.UI.DataVisualization.Charting.ChartColorPalette.None; 
     Chart1.PaletteCustomColors = new Color[] { Color.Blue, Color.Red }; 

     //SET THE IMAGE OUTPUT TYPE TO BE JPEG 
     Chart1.ImageType = System.Web.UI.DataVisualization.Charting.ChartImageType.Jpeg; 

     //ADD A PLACE HOLDER CHART AREA TO THE CHART 
     //SET THE CHART AREA TO BE 3D 
     Chart1.ChartAreas.Add(new ChartArea()); 
     Chart1.ChartAreas[0].Area3DStyle.Enable3D = true; 

     //ADD A PLACE HOLDER LEGEND TO THE CHART 
     //DISABLE THE LEGEND 
     Chart1.Legends.Add(new Legend()); 
     Chart1.Legends[0].Enabled = false; 
    } 
} 

체크 아웃 http://weblogs.asp.net/scottgu/archive/2008/11/24/new-asp-net-charting-control-lt-asp-chart-runat-quot-server-quot-gt.aspx

+0

@Iain : 답변 해 주셔서 감사합니다. 나는 실제로 asp : aspx 페이지에서 차트 태그가있는 승/O 할려고 해요. – Ryan

+0

@ Ryan : 정말 필요한 경우 aspx 페이지에서 Literal을 사용하고 Chart.RenderControl을 사용하여 텍스트 속성을 설정할 수 있지만 그 점은 실제로 볼 수 없습니다. 코드 숨김에서 모든 작업을 수행해야하는 이유는 무엇입니까? –

+0

그게 내가 끝내 준거야. – Ryan

2

왜 동적 렌더링 방식입니까? 왜 그냥 같은 태그 정의 :

을 그리고 컨트롤의 속성을 설정? 또는 텍스트를 렌더링 된 응답으로 설정하여 span으로 감싸는 방법도 있습니다. LiteralControl과 같은 오류가 발생하면 다른 컨트롤을 사용해 볼 수 있습니다.

+0

@Brian : 내가 지정한 코드에 지정한 답변을 어떻게 적용 할 수 있습니까? 나는 .NET을 사용하는 것에 상당히 익숙하다 ... 나는 천천히 고전적인 ASP와는 반대로 .NET을 사용하도록 자신을 훈련시키고있다. 차트를 웹 페이지의 특정 위치에 렌더링 할 수 있어야합니다. 감사! – Ryan

+0

미안하지만, 당신이 MVC를 말하는 줄 알았는데 ... 사과드립니다. 내 대답을 바로 잡았어. –

1

는 넣어에서 시도 오류 메시지 :

코드에서
div id="chart" runat="server" 

는 :

this.chart.Controls.Add(Chart1); 

내 경우에는 내가 데이터 테이블의 데이터를 하나 이상 만들 필요가있다.

관련 문제