-
Notifications
You must be signed in to change notification settings - Fork 352
/
Copy pathFetchData.razor
56 lines (49 loc) · 1.69 KB
/
FetchData.razor
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
@page "/fetchdata"
@using PopupControl.Data
@using System.Collections.ObjectModel
@using PopupControl.Controls.Popup
@inject WeatherForecastService ForecastService
@inject PopupService PopupService
<TelerikGrid Data="@forecasts">
<GridColumns>
<GridColumn Field="Date" />
<GridColumn Field="TemperatureC" />
<GridColumn Field="TemperatureF" />
<GridColumn Field="Summary" />
<GridCommandColumn Width="150px">
<GridCommandButton OnClick="@AddForecast" Icon="plus"></GridCommandButton>
<GridCommandButton OnClick="@((args)=> EditForecast(args.Item as WeatherForecast))" Icon="arrow-chevron-right"></GridCommandButton>
</GridCommandColumn>
</GridColumns>
</TelerikGrid>
@code {
ObservableCollection<WeatherForecast> forecasts;
protected override async Task OnInitializedAsync()
{
await Refresh();
}
private async void AddForecast()
{
var result = await PopupService.Show(typeof(ForecastEditView));
if (result.Success)
{
await Refresh();
await InvokeAsync(() => StateHasChanged());
}
}
private async void EditForecast(WeatherForecast forecast)
{
var result = await PopupService.Show(typeof(ForecastEditView),
new PopupParameters().Add(nameof(ForecastEditView.Id), forecast.Id));
if (result.Success)
{
await Refresh();
await InvokeAsync(() => StateHasChanged());
}
}
private async Task Refresh()
{
List<WeatherForecast> tempData = await ForecastService.GetForecastAsync();
forecasts = new ObservableCollection<WeatherForecast>(tempData);
}
}