2016-04-21 67 views
1

我試圖用圖表助手類填充ASP.Net中的甜甜圈圖表。我有一個項目集合,這些項目包含一些模塊。我每次將一個項目傳遞給創建圖表的方法。如何在.NET圖表助手中動態填充圖表

foreach循環遍歷項目包含的每個模塊。對於每個模塊,我想在圖表中顯示一個零件。例如,當前的項目包含3模塊,Dooughnut應該根據其y值顯示三個部分。下一個項目包含5個模塊,因此圖表應該用5個部分和它的y值構建。

我嘗試這樣做:

var chart = new Chart(width: 300, height: 220).AddTitle("Test"); 

if (project!= null) 
{ 
    foreach (var item in project.module) 
    { 
     chart.AddSeries(chartType: "Doughnut", 
      xValue: new[] { item.TXT_Name }, 
      yValues: new[] { item.NUM_Hours }); 
    } 
} 
return chart.Write("png"); 

但隨後的走勢具有隻是其中的一部分,因爲每一次的foreach當前模塊覆蓋了系列中的圖表。

是否有任何方法根據項目中模塊的數量動態構建圖表。

THX對您有所幫助:)

回答

1

您只需創建xValues和yValues兩個IEnumerables然後將其添加到系列

var chart = new Chart(width: 300, height: 220).AddTitle("Test"); 

var xValues = new List<String>(); 
var yValues = new List<int>(); 
foreach (var item in project.module) 
{ 
    xValues.Add(item.TXT_Name); 
    yValues.Add(item.NUM_Hours); 
} 

chart.AddSeries(chartType: "Doughnut", 
     xValue: xValues, 
     yValues: yValues); 

return chart.Write("png"); 

我這裏列出

+1

THX試了一下,這工作!真的很乾淨解決方案:) – G43beli