ASP.NET 带有 DataBindCrossTable 的图表

ASP.NET Chart with DataBindCrossTable

这是我第一次尝试使用 ASP.NET 图表控件。 我一直使用其他第三方图表。

这次,我要创建一个使用图表控件的 Web 表单用户控件。

让我从我的数据开始。 这是我从数据库函数返回的数据:

我希望我的图表控件显示 10 月、11 月和 12 月的数据。 如您所见,11 月有 3 条记录 - 这是因为 'status' 不同。 因此,我希望我的图表控件具有以下条形:

- 1 October X value with 1 bar 'lost' with Y count 2

- 1 November X value with 3 bars 'lost, stolen, found' with 1 Y count each.

- 1 December X Value with 1 bar 'stolen' with Y count 1

当控件加载时,我得到了一个具有上述屏幕截图结构的数据表,然后像这样绑定图表:

        protected void Page_Load(object sender, EventArgs e)
        {
            DataTable dt = _stolenFunctions.GetDashboardChartDataTable(DateTime.Now.Year);

            StolenControlBarChart.DataBindCrossTable(dt.AsEnumerable(), "Status", "Month", "Count", "Label=Status");
        }

ASP.NET代码:

    <asp:Chart ID="StolenControlBarChart" CssClass="stolenControlBarChart" Width="500" runat="server">
        <ChartAreas>
            <asp:ChartArea Name="ChartArea1"></asp:ChartArea>
        </ChartAreas>
    </asp:Chart>

但由于某种原因,图表显示的数据如下所示:

谁能帮我指明正确的方向? :)

不确定这是否会有很大帮助,但如果您添加未显示且计数为 0 的其他状态,图表会是什么样子。这会使图表看起来正确吗?我只是想知道是否每个月都期待 3 个结果,并且在第一个月仅收到 1 个结果后出现偏差。并不是说这是一个解决方案,但它可能会为您提供足够的信息以继续前进。

换句话说,尝试向数据库中添加行以返回此结果

MONTH    Status    Count
October  Lost      2
October  Stolen    0
October  Found     0
November Stolen    1
November Lost      1
November Found     1
December Stolen    1
December Lost      0
December Found     0

图表是否正确?