2014-07-18 2 views
1

나는 C# 코드 숨김 파일에서 파이 차트를 만들고 있습니다.각 Y 값에 범례 레이블 추가 ASP.NET/C#

Graph.Series["Data"].Points.AddXY(appointments.LocCode, appointments.OnTime, appointments.Late, appointments.Missed); 

가 OnTime, 늦은, 모든 단지의 int는 내가 정말 그냥 전체가 그들 모두의 합계 인 파이 차트를 원하는 부재 : 여기 차트에게 데이터를 제공하기 위해 사용하고있는 코드입니다. 내 문제는, 범례 데이터 값의 y 값을 표시하고 그것을 나타내는 범주 (표시 시간, 놓친 또는 늦게) 표시해야합니다.

저는 이미 값과 백분율을 표시하기 위해 시리즈 레이블을 사용하고 있습니다. 따라서이 옵션은 실제로는 범례에 있어야합니다. 또한이 차트는 사용자가 페이지에서 선택한 컨트롤을 기반으로 동적으로 채워 져야하므로 디자이너 나 aspx 코드로 아무 것도 할 수 없다고 생각합니다.

이 작업을 쉽게 수행 할 수있는 데이터를 바인딩해야하는 다른 방법이 있습니까? 저는이 모든 것이 거의 학습 경험 이었기 때문에 ASP.NET/Charts에 익숙하지 않았습니다.

나는이 본 적이 :

chart1.Series["Series1"].Points[0].Label = "My Point Label\nLabel Line #2"; 

을하지만 나는이 경우 작동하는지 정말 모르겠어요하고 않는 경우, 어떻게 인덱스 0, 1, 2 등의 어떤 점 구별하기 이 코드를 시도했지만 "인덱스가 범위를 벗어났습니다."라는 오류가 발생했습니다. 사용 된 테스트 데이터에 약속이 누락되지 않았거나 데이터 바인딩에 문제가있는 것이 아닌지 확실하지 않습니다. 색인 위치 0만을 사용했을 때, 백분율과 y 값 레이블이 바뀌 었습니다. 목적에 어긋나고 코드를 보았습니다. 전설이 아닌 시리즈 레이블을 바꾸고 있습니다. 상표.

그래서 "On Time"은 약속을위한 곳입니다 .OnTime, "Late"는 약속입니다 .Late 및 "Missed"는 약속입니다 .Missed? 다시 말하지만, 데이터 바인딩을 변경하는 것에 대해 개방적입니다. 최종 결과 만 필요합니다. 이 시점에서 어떤 제안이나 통찰력이라도 크게 평가 될 것입니다.

답변

0

몇 가지 사항을 변경하고 내가 찾던 문제가 발생했습니다. 다른 사람들이 장래에 이것을보고 내가 무엇을했는지 궁금해하는 경우 :

개체 데이터 소스가 변경되었습니다. 대신 사용하는 :

public int OnTime { get; set; } 
public int Late { get; set; } 
public int Missed { get; set; } 
public String LocCode { get; set; } 

난 그냥 사용 :

Graph.Series["Data"].Label = "#PERCENT\n#VALY"; 
Graph.Series["Data"].LegendText = "#VALX"; 
:

Graph.DataSource = AData; //where AData is a List of the class I described above 
Graph.Series["Data"].XValueMember = "TimeDesc"; 
Graph.Series["Data"].YValueMembers = "TimeAmt"; 

그리고 내 라벨이처럼 보였다 : 내가 가진 원형 차트에 데이터가 바인딩

public String LocCode { get; set; } 
public String TimeDesc { get; set; } 
public int TimeAmt { get; set; }