You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Blazor Radzen中配置ChartComponent统计各项目状态数量

实现按项目状态统计的Radzen柱状图

1. 先处理统计数据

首先需要把Projects集合按projectStatus分组统计数量,还要确保5种状态全部显示(哪怕对应数量为0)。在Blazor组件的代码部分添加以下逻辑:

// 定义所有需要展示的项目状态
private readonly List<string> _allProjectStatuses = new List<string> { "open", "closed", "in progress", "deleted", "new" };

// 存储统计后的状态-数量数据
private IEnumerable<object> _statusStatistics;

protected override void OnInitialized()
{
    base.OnInitialized();
    // 分组统计,通过左连接确保所有状态都被包含
    _statusStatistics = from status in _allProjectStatuses
                        join groupedProject in Projects.GroupBy(p => p.projectStatus)
                              on status equals groupedProject.Key into statusGroup
                        from groupItem in statusGroup.DefaultIfEmpty()
                        select new
                        {
                            Status = status,
                            ProjectCount = groupItem?.Count() ?? 0
                        };
}

如果你的projectStatus是枚举类型,把_allProjectStatuses替换成枚举值的名称列表即可:

private readonly List<string> _allProjectStatuses = Enum.GetNames(typeof(ProjectStatus)).ToList();

2. 配置RadzenChart组件

直接使用处理好的统计数据配置柱状图,X轴绑定状态名称,Y轴绑定对应数量:

<RadzenChart>
    <!-- X轴:类别轴,展示5种项目状态 -->
    <RadzenCategoryAxis Data="@_statusStatistics" Property="Status" />
    <!-- Y轴:数值轴,显示项目数量 -->
    <RadzenValueAxis Title="项目数量" />
    <!-- 柱状图系列,绑定统计数据 -->
    <RadzenBarSeries Data="@_statusStatistics" CategoryProperty="Status" ValueProperty="ProjectCount" />
    <!-- 可选:底部添加图例 -->
    <RadzenLegend Position="LegendPosition.Bottom" />
</RadzenChart>

关键说明

  • 左连接逻辑保证了即使某个状态下没有项目,X轴依然会显示该状态,Y轴数量为0,不会出现缺失状态的情况。
  • 确保已经在项目中正确引入Radzen组件的命名空间(通常是@using Radzen)。

内容的提问来源于stack exchange,提问作者Baldie47

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 20:30:49