为每个Y值添加图例标签ASP.NET/C#

本文关键字:ASP 标签 NET 添加 | 更新日期: 2023-09-27 18:13:35

我正在用c#代码制作一个饼状图。下面是我用来给图表提供数据的代码:

Graph.Series["Data"].Points.AddXY(appointments.LocCode, appointments.OnTime, appointments.Late, appointments.Missed);

OnTime, Late和Missed都是整数,我真的只想要一个饼状图,其中whole是所有这些的总和。我的问题是,图例显示数据点的y值,我需要它来显示它所代表的类别(准时,错过或迟到)。

我已经使用系列标签来显示值和百分比,所以这不是一个真正的选项,它必须在图例中。此外,这个图表需要根据用户在页面上选择的控件动态填充,所以我认为我不能用设计器或aspx代码做任何事情。

我应该绑定数据的另一种方式,将更容易完成这一点?我是ASP的新手。NET/Charts,所以这整个事情基本上是一个学习经验。

我看过这个:

chart1.Series["Series1"].Points[0].Label = "My Point Label'nLabel Line #2";

但我不确定这在这种情况下是否有效,如果是的话,如何区分哪个点在索引0,1,2等。我确实尝试了这个代码,但我收到了一个错误"索引超出范围",我不确定这是因为我使用的测试数据没有错过约会,或者如果它是我的数据绑定的东西。当我只使用索引位置0时,它改变了我的百分比和y值标签,这有点违背了目的,现在我看一下代码,我注意到我用它改变了系列标签,而不是图例标签。

那么,我如何分配图例标签,其中"On Time"是约会。在OnTime上,"迟到"是指约会。迟到和"错过"是指约会,错过?同样,我对更改数据绑定持开放态度,我只需要这是最终结果。在这一点上,任何建议或见解都将非常感谢。

为每个Y值添加图例标签ASP.NET/C#

做了一些改变,我得到了我想要的行为。如果其他人将来看到这个并且想知道我做了什么:

我最终改变了我的对象数据源。而不是使用:

public int OnTime { get; set; }
public int Late { get; set; }
public int Missed { get; set; }
public String LocCode { get; set; }

我刚才用了:

public String LocCode { get; set; }
public String TimeDesc { get; set; }
public int TimeAmt { get; set; }

我用:

将数据绑定到饼状图
Graph.DataSource = AData; //where AData is a List of the class I described above
Graph.Series["Data"].XValueMember = "TimeDesc";
Graph.Series["Data"].YValueMembers = "TimeAmt";

我的标签是这样的:

Graph.Series["Data"].Label = "#PERCENT'n#VALY";
Graph.Series["Data"].LegendText = "#VALX";