首页 > 解决方案 > Blazor RadzenDataGrid 显示对象名称,而不是值

问题描述

我正在尝试使用 RadzenDataGrid 来显示一些数据。使用标准的 HTML 表格效果很好,这就是我所看到的;

显示成功数据

但是,当我为 RadzenDataGrid 切换 HTML 表时,我得到了这个;

在此处输入图像描述

这是成功的代码;

@page "/fetchplants"

@using BlazorApp.Data
@using Radzen.Blazor

@inject PlantService PlantService

<h1>Plants List</h1>

@if (_plants == null)
{
    <p><em>Loading...</em></p>
}
else
{
    <table class="table">
        <thead>
            <tr>
                <th>Plant Id</th>
                <th>Plant Short</th>
                <th>Plant Name</th>
                <th>Business Unit</th>
                <th>Depot Id</th>
                <th>Depot Short</th>
                <th>Depot Name</th>
            </tr>
        </thead>
        <tbody>
            @foreach (Plant p in _plants)
            {
                <tr>
                    <td>@p.plantId</td>
                    <td>@p.plantShort</td>
                    <td>@p.plantName</td>
                    <td>@p.businessUnit</td>
                    <td>@p.depotId</td>
                    <td>@p.depotShort</td>
                    <td>@p.depotName</td>
                </tr>
            }
        </tbody>
    </table>
}

@code {
    private IEnumerable<Plant> _plants;
    private int _count;

    protected override Task OnInitializedAsync()
    {
        List<Plant> plants = PlantService.GetPlants();
        _plants = plants;
        _count = plants.Count;

        return base.OnInitializedAsync();
    }
}

这是给我问题的代码(我只包含了几列,因为它不起作用);

@page "/fetchplants"

@using BlazorApp.Data
@using Radzen.Blazor


@inject PlantService PlantService

<h1>Plants List</h1>

@if (_plants == null)
{
    <p><em>Loading...</em></p>
}
else
{
    <RadzenDataGrid Count="_count" Data="@_plants" TItem="Plant">
        <Columns>
            <RadzenDataGridColumn TItem="Plant" Property="plantID" Title="Plant ID"></RadzenDataGridColumn>
            <RadzenDataGridColumn TItem="Plant" Property="plantName" Title="Plant Name"></RadzenDataGridColumn>
        </Columns>
    </RadzenDataGrid>
}

@code {
    private IEnumerable<Plant> _plants;
    private int _count;

    protected override Task OnInitializedAsync()
    {
        List<Plant> plants = PlantService.GetPlants();
        _plants = plants;
        _count = plants.Count;

        return base.OnInitializedAsync();
    }
}

所以我知道我的返回数据的服务很好,因为它适用于 HTML 表。我知道我的 Plant 课也是出于同样的原因。我看过的每个示例看起来都与我的代码相同。

我已经在谷歌上搜索了几个小时,但找不到任何有帮助的东西,所以我做错了一定是非常愚蠢的事情,因为似乎没有其他人遇到过这个问题!

标签: c#blazor

解决方案


感谢@CaiusJard,我的 Plant 类充满了字段而不是属性....


推荐阅读