【问题标题】:Why cant I display this object in my gridview using Syncfusion Blazor?为什么我不能使用 Syncfusion Blazor 在我的网格视图中显示这个对象?
【发布时间】:2020-06-24 17:06:45
【问题描述】:

我正在尝试将“FleetDataOverview”类的已创建对象显示到网格视图中,但它一直说“对象未设置为对象的实例”,代码:

网格视图代码:

<SfCard ID="">
            <CardHeader Title="Fleet data (24 hours)" />
            <CardContent>
                <SfGrid DataSource="@GridData" AllowPaging="true">
                    <GridColumns>
                        <GridColumn Field=@nameof(FleetDataOverview.FleetId) HeaderText="ID" TextAlign="TextAlign.Right" Width="120"></GridColumn>
                        <GridColumn Field=@nameof(FleetDataOverview.FleetAverageEEOI) HeaderText=" Average EEOI (CO2 / (cardo * distance sailed))" TextAlign="TextAlign.Right" Width="120"></GridColumn>
                        <GridColumn Field=@nameof(FleetDataOverview.FleetAverageFOC) HeaderText=" Average FOC (kg/nm)" TextAlign="TextAlign.Right" Width="120"></GridColumn>
                        <GridColumn Field=@nameof(FleetDataOverview.FleetTotalFuelMass) HeaderText=" Total Fuel Mass (kg)" TextAlign="TextAlign.Right" Width="120"></GridColumn>
                        <GridColumn Field=@nameof(FleetDataOverview.FleetAverageSpeed) HeaderText=" Average speed (kn)" TextAlign="TextAlign.Right" Width="120"></GridColumn>
                        <GridColumn Field=@nameof(FleetDataOverview.FleetTotalDistanceSailed) HeaderText=" Total distance sailed (NM)" TextAlign="TextAlign.Right" Width="120"></GridColumn>
                    </GridColumns>
                </SfGrid>
            </CardContent>
</SfCard>

C#:

public List<FleetDataOverview> GridData { get; set; }

protected override void OnInitialized()
{
    FleetDataOverview averageFleetDataOverView = new FleetDataOverview();
    averageFleetDataOverView.FleetId = "1";
    averageFleetDataOverView.FleetAverageEEOI = "100";
    averageFleetDataOverView.FleetAverageFOC = "200";
    averageFleetDataOverView.FleetTotalFuelMass = "1200";
    averageFleetDataOverView.FleetAverageSpeed = "14";
    averageFleetDataOverView.FleetTotalDistanceSailed = "16000";
    GridData.Add(averageFleetDataOverView);
}

public class FleetDataOverview
{
    public string FleetId { get; set; }
    public string FleetAverageEEOI { get; set; }
    public string FleetAverageFOC { get; set; }
    public string FleetTotalFuelMass { get; set; }
    public string FleetAverageSpeed { get; set; }
    public string FleetTotalDistanceSailed { get; set; }
}

我在这里做错了什么?

提前致谢

【问题讨论】:

    标签: c# list gridview blazor syncfusion


    【解决方案1】:

    这行代码:public List&lt;FleetDataOverview&gt; GridData { get; set; }

    应该是:

     public List<FleetDataOverview> GridData { get; set; } = new List<FleetDataOverview>();
    

    定义List&lt;FleetDataOverview&gt; 属性仍然需要您实例化对象。否则,该值从 get 访问器返回 为空。

    希望这会有所帮助...

    【讨论】:

      【解决方案2】:

      由于您尝试将对象添加到值为 null(未启动)的列表 (GridData),因此出现了报告的问题。为了克服报告的问题,请按如下方式初始化 GridData

      public List<FleetDataOverview> GridData { get; set; } = new List<FleetDataOverview>(); 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-09-12
        相关资源
        最近更新 更多