我尝试用图表帮助程序类填充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中,当前模块会覆盖图表中的系列。
有没有办法根据项目中的模块数量动态构建图表。
感谢你的帮助:)
答案 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进行了尝试