|
|
|
@ -14,7 +14,7 @@ |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
<!-- This page is rendered in SSR mode, so the FluentDataGrid component does not offer any interactivity (like sorting). --> |
|
|
|
|
<FluentDataGrid Id="weathergrid" Items="@forecasts" GridTemplateColumns="1fr 1fr 1fr 2fr" TGridItem="WeatherForecast"> |
|
|
|
|
<FluentDataGrid Id="weathergrid" Items="@forecasts" GridTemplateColumns="1fr 1fr 1fr 2fr" TGridItem="WeatherForecastDTO"> |
|
|
|
|
<PropertyColumn Title="Date" Property="@(c => c!.Date)" Align="Align.Start"/> |
|
|
|
|
<PropertyColumn Title="Temp. (C)" Property="@(c => c!.TemperatureC)" Align="Align.Center"/> |
|
|
|
|
<PropertyColumn Title="Temp. (F)" Property="@(c => c!.TemperatureF)" Align="Align.Center"/> |
|
|
|
@ -23,28 +23,8 @@ else |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@code { |
|
|
|
|
private IQueryable<WeatherForecast>? forecasts; |
|
|
|
|
private IQueryable<WeatherForecastDTO>? forecasts; |
|
|
|
|
|
|
|
|
|
protected override async Task OnInitializedAsync() |
|
|
|
|
{ |
|
|
|
|
// Simulate asynchronous loading to demonstrate streaming rendering |
|
|
|
|
await Task.Delay(500); |
|
|
|
|
|
|
|
|
|
var startDate = DateOnly.FromDateTime(DateTime.Now); |
|
|
|
|
var summaries = new[] { "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" }; |
|
|
|
|
forecasts = Enumerable.Range(1, 5).Select(index => new WeatherForecast |
|
|
|
|
{ |
|
|
|
|
Date = startDate.AddDays(index), |
|
|
|
|
TemperatureC = Random.Shared.Next(-20, 55), |
|
|
|
|
Summary = summaries[Random.Shared.Next(summaries.Length)] |
|
|
|
|
}).AsQueryable(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private class WeatherForecast |
|
|
|
|
{ |
|
|
|
|
public DateOnly Date { get; set; } |
|
|
|
|
public int TemperatureC { get; set; } |
|
|
|
|
public string? Summary { get; set; } |
|
|
|
|
public int TemperatureF => 32 + (int)(TemperatureC / 0.5556); |
|
|
|
|
} |
|
|
|
|
=> forecasts = (await AccountService.GetWeatherForecastsAync()).AsQueryable(); |
|
|
|
|
} |
|
|
|
|