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

使用Radzen Data Grid时无数据显示的问题咨询

问题排查与修复方案

1. 空数据场景下的选择逻辑异常

你的代码在OnInitializedAsync中直接通过employees.FirstOrDefault()获取选中项,若数据库中无用户数据,FirstOrDefault()会返回null,将null加入selectedEmployees会触发绑定错误,可能导致组件渲染失败,最终界面无数据显示。

修复代码:

protected override async Task OnInitializedAsync()
{
    await base.OnInitializedAsync();

    employees = await DbContext.Users.ToListAsync();

    if (employees.Any())
    {
        selectedEmployees = new List<ApplicationUser>() { employees.First() };
    }
}

2. 验证DbContext数据加载是否正常

先确认DbContext.Users能从SQL Server正确获取数据,可以添加日志或断点验证:

protected override async Task OnInitializedAsync()
{
    await base.OnInitializedAsync();

    employees = await DbContext.Users.ToListAsync();
    // 输出日志查看实际加载的数据量
    Console.WriteLine($"加载用户数量:{employees.Count()}");

    if (employees.Any())
    {
        selectedEmployees = new List<ApplicationUser>() { employees.First() };
    }
}

如果输出为0,需检查以下几点:

  • 数据库连接字符串是否正确指向目标SQL Server实例
  • ApplicationDbContext中是否正确声明DbSet<ApplicationUser> Users { get; set; }
  • AspNetUsers表中是否存在实际数据
  • 是否有未执行的数据库迁移,导致表结构与实体类不匹配

3. 手动触发组件状态更新(可选)

虽然InteractiveServer模式下赋值后通常会自动刷新UI,但如果数据加载后界面仍无响应,可以手动调用状态更新:

protected override async Task OnInitializedAsync()
{
    await base.OnInitializedAsync();

    employees = await DbContext.Users.ToListAsync();

    if (employees.Any())
    {
        selectedEmployees = new List<ApplicationUser>() { employees.First() };
    }
    StateHasChanged();
}

4. 检查RadzenDataGrid列属性绑定

确认ApplicationUser类的公共属性名称(如Name、OrgUnitId、PhoneNumber)与RadzenDataGridColumn的Property值完全一致,避免拼写错误导致列数据无法渲染。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 04:24:57