2013-11-25 2 views
1

.asp.net에 chrt라는 원형 차트가 있습니다. 라벨 대신 값을 통화 서식이있는 차트에 표시하고 싶습니다. 전설에 레이블이 나타나기를 바랍니다. 나는 다음과 같은 작업을 수행하고 값 대신 레이블 대신 내 차트에 값을 표시하며 레이블은 여전히 ​​범례에 표시됩니다..asp.net 차트 레이블을 값으로 변경 한 다음 범례가 아닌 차트 만 서식을 지정하십시오.

chrt.Series[0].IsValueShownAsLabel = true; 

예 :

차트 쇼 "12345.678"전설 "판매"

내가 지금 필요한 것은 달러 표시하는 차트를 얻을 수 있습니다 보여줍니다.

다음과 같이하면 서식을 통화의 서식으로 변경하지만 유감스럽게도 범례의 레이블을 통화 서식이 지정된 값으로 바꿉니다.

foreach (Series b in chrt.Series) 
     {        
      foreach (DataPoint c in b.Points) 
      {     
       //Sets both legend and chart value 
       c.Label = c.YValues[0].ToString("C");         
      } 
     } 

예 :

차트 쇼 "$ 12345.68"전설의 쇼 "$ 12345.68"

나는 또한 아래의 코드를 시도했습니다

는하지만 통화로 값과 형식을에 범례를 설정하고, 그 값을 그대로 차트에 남겨 둡니다.

foreach (Series b in chrt.Series) 
     {        
      foreach (DataPoint c in b.Points) 
      {    
       //Sets just the legend to the dollar values 
       c.AxisLabel = c.YValues[0].ToString("C"); 
      } 
     } 

예 :

차트 쇼 "12345.678"전설의 쇼 "$ 12345.68"

나는 그것을 보여주고 싶은 모든

차트 쇼 "$ 12345.68"입니다 전설 "판매"

표시

답변

3

내가 알아낼 수있는 유일한 방법은 설정하지 않는 것입니다.

chrt.Series[0].IsValueShownAsLabel = true; 

그리고 레이블과 범례 텍스트를 시리즈 수준에서 원하는대로 수동으로 설정하십시오. #VALY 및 #VALX 키워드를 사용하여 런타임시 값으로 대체하고 그 뒤에 중괄호 안에 형식 문자열을 배치하여 서식을 적용합니다. 그래서이 경우 달러 기호는 매 1,000 단위 구분 기호로 사용하고 거기에 아무것도 없으면 0으로 소수점의 왼쪽으로 대체하고 거기에 아무것도 없으면 소수점 이하 2 자리까지만 0으로 대체합니다.

foreach (Series b in chrt.Series) 
     { 

      b.Label = "#VALY{$#,##0.00}";   
      b.LegendText = "#VALX"; 
     } 

예 :

12345.678은 $ 12,345.67

0.1234은 $ 0.12

1234 $ 1,234.00

된다된다된다