如何动态填充.NET Chart Helper中的图表

时间:2016-04-21 07:19:53

标签: c# asp.net charts

我尝试用图表帮助程序类填充ASP.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中,当前模块会覆盖图表中的系列。

有没有办法根据项目中的模块数量动态构建图表。

感谢你的帮助:)

1 个答案:

答案 0 :(得分:1)

你可以创建xValues和yValues的两个IEnumebles,然后将它添加到系列

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");

我在这里使用List进行了尝试