为什么我不能使用 Syncfusion Blazor 在我的 gridview 中显示这个对象?
Why cant I display this object in my gridview using Syncfusion Blazor?
我正在尝试将 class "FleetDataOverview" 的创建对象显示到 gridview 中,但它一直显示 "object is not set to an instance of an object",代码:
网格视图代码:
<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; }
}
我做错了什么?
提前致谢
这行代码:public List<FleetDataOverview> GridData { get; set; }
应该是:
public List<FleetDataOverview> GridData { get; set; } = new List<FleetDataOverview>();
定义一个 List<FleetDataOverview>
属性 仍然需要您实例化该对象。否则,get 访问器的值 returns
为空。
希望这对您有所帮助...
由于您试图将对象添加到值为 null 的列表 (GridData)(未启动),因此出现了所报告的问题。为了克服报告的问题,请按如下方式初始化 GridData
public List<FleetDataOverview> GridData { get; set; } = new List<FleetDataOverview>();
我正在尝试将 class "FleetDataOverview" 的创建对象显示到 gridview 中,但它一直显示 "object is not set to an instance of an object",代码:
网格视图代码:
<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; }
}
我做错了什么?
提前致谢
这行代码:public List<FleetDataOverview> GridData { get; set; }
应该是:
public List<FleetDataOverview> GridData { get; set; } = new List<FleetDataOverview>();
定义一个 List<FleetDataOverview>
属性 仍然需要您实例化该对象。否则,get 访问器的值 returns
为空。
希望这对您有所帮助...
由于您试图将对象添加到值为 null 的列表 (GridData)(未启动),因此出现了所报告的问题。为了克服报告的问题,请按如下方式初始化 GridData
public List<FleetDataOverview> GridData { get; set; } = new List<FleetDataOverview>();