如果仅添加一个数据值,AjaxControlToolkit PieChart 图形不会呈现

AjaxControlToolkit PieChart graphic does not render if only one data value is added

我从后面的代码动态输入数据:

PieChart1.PieChartValues.Add(new AjaxControlToolkit.PieChartValue
{
Category = "1",
Data = count1
});

它应该通过使用开关来反映 1-10 的评级数量(我没有显示整个开关,因为那样太麻烦了)。所以在这种情况下,如果一个人给出 1 的评分,则 count1 = 1,我希望饼图反映这一点,但控件仍然是空白的,并且在拐角处一直只有 1,但图例是还在。

这是一个错误还是我遗漏了什么?

更新:这是通过评级 1 - 10 并将该特定评级的数量添加到图表的开关:

for (int i = 1; i <= 10; i++)
                {
                    switch (i)
                    {
                        case 1:
                            if (count1 > 0)
                            {
                                PieChart1.PieChartValues.Add(new AjaxControlToolkit.PieChartValue
                                {
                                    Category = "1",
                                    Data = count1
                                });
                            }
                            break;
                        case 2:
                            if (count2 > 0)
                            {
                                PieChart1.PieChartValues.Add(new AjaxControlToolkit.PieChartValue
                                {
                                    Category = "2",
                                    Data = count2
                                });
                            }
                            break;
                        case 3:
                            if (count3 > 0)
                            {
                                PieChart1.PieChartValues.Add(new AjaxControlToolkit.PieChartValue
                                {
                                    Category = "3",
                                    Data = count3
                                });
                            }
                            break;
                        case 4:
                            if (count4 > 0)
                            {
                                PieChart1.PieChartValues.Add(new AjaxControlToolkit.PieChartValue
                                {
                                    Category = "4",
                                    Data = count4
                                });
                            }
                            break;
                        case 5:
                            if (count5 > 0)
                            {
                                PieChart1.PieChartValues.Add(new AjaxControlToolkit.PieChartValue
                                {
                                    Category = "5",
                                    Data = count5
                                });
                            }
                            break;
                        case 6:
                            if (count6 > 0)
                            {
                                PieChart1.PieChartValues.Add(new AjaxControlToolkit.PieChartValue
                                {
                                    Category = "6",
                                    Data = count6
                                });
                            }
                            break;
                        case 7:
                            if (count7 > 0)
                            {
                                PieChart1.PieChartValues.Add(new AjaxControlToolkit.PieChartValue
                                {
                                    Category = "7",
                                    Data = count7
                                });
                            }
                            break;
                        case 8:
                            if (count8 > 0)
                            {
                                PieChart1.PieChartValues.Add(new AjaxControlToolkit.PieChartValue
                                {
                                    Category = "8",
                                    Data = count8
                                });
                            }
                            break;
                        case 9:
                            if (count9 > 0)
                            {
                                PieChart1.PieChartValues.Add(new AjaxControlToolkit.PieChartValue
                                {
                                    Category = "9",
                                    Data = count9
                                });
                            }
                            break;
                        case 10:
                            if (count10 > 0)
                            {
                                PieChart1.PieChartValues.Add(new AjaxControlToolkit.PieChartValue
                                {
                                    Category = "10",
                                    Data = count10
                                });
                            }
                            break;
                    }

您做的一切都正确,但是当系列中只有一个值时,PieChart 不会生成有效的 SVG 标记,因此您看不到任何结果。

我运行也遇到了这个问题。我的修复只是检查数据表中的 1 行,如果是,则将另一个项目添加到图表中,值为 1,标签为空白。这不是很漂亮,但在我的情况下,图表中只有 1 项的情况很少见,所以我只是解释说当只有 1 项时它可能无法正确显示。我知道这是一个糟糕的修复,但我希望他们能在以后的版本中修复这个问题。

if(dt.Rows.Count == 1)
{
    pieChart1.PieChartValues.Add(new AjaxControlToolkit.PieChartValue
    {
        Category = "",
        Data = 1
    });
}