123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- @page "/fetchdata"
- @inject HttpClient Http
- @using AntDesign.TableModels
- <h1>Weather forecast</h1>
- <p>This component demonstrates fetching data from the server.</p>
- @if (forecasts == null)
- {
- <p><em>Loading...</em></p>
- }
- else
- {
- <Table @ref="table"
- TItem="WeatherForecast"
- DataSource="@forecasts"
- Total="_total"
- @bind-PageIndex="_pageIndex"
- @bind-PageSize="_pageSize"
- @bind-SelectedRows="selectedRows"
- OnChange="OnChange">
- <Selection Key="@(context.Id.ToString())" />
- <AntDesign.Column @bind-Field="@context.Id" Sortable />
- <AntDesign.Column @bind-Field="@context.Date" Format="yyyy-MM-dd" Sortable />
- <AntDesign.Column @bind-Field="@context.TemperatureC" Sortable />
- <AntDesign.Column Title="Temp. (F)" Field="@context.TemperatureF" />
- <AntDesign.Column @bind-Field="@context.Summary" Sortable Filterable />
- <ActionColumn>
- <Space>
- <SpaceItem><Button Danger OnClick="()=>Delete(context.Id)">Delete</Button></SpaceItem>
- </Space>
- </ActionColumn>
- </Table>
- }
- @using System.Text.Json;
- @code {
- private WeatherForecast[] forecasts;
- IEnumerable<WeatherForecast> selectedRows;
- ITable table;
- int _pageIndex = 1;
- int _pageSize = 10;
- int _total = 0;
- protected override async Task OnInitializedAsync()
- {
- forecasts = await Http.GetFromJsonAsync<WeatherForecast[]>("sample-data/weather.json");
- }
- private static readonly string[] Summaries = new[]
- {
- "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
- };
- public async Task OnChange(QueryModel<WeatherForecast> queryModel)
- {
- Console.WriteLine(JsonSerializer.Serialize(queryModel));
- }
- public Task<WeatherForecast[]> GetForecastAsync(int pageIndex, int pageSize)
- {
- var rng = new Random();
- return Task.FromResult(Enumerable.Range((pageIndex - 1) * pageSize + 1, pageSize).Select(index =>
- {
- var temperatureC = rng.Next(-20, 55);
- return new WeatherForecast
- {
- Id = index,
- Date = DateTime.Now.AddDays(index),
- TemperatureC = temperatureC,
- Summary = Summaries[rng.Next(Summaries.Length)]
- };
- }).ToArray());
- }
- public void RemoveSelection(int id)
- {
- var selected = selectedRows.Where(x => x.Id != id);
- selectedRows = selected;
- }
- private void Delete(int id)
- {
- forecasts = forecasts.Where(x => x.Id != id).ToArray();
- _total = forecasts.Length;
- }
- public class WeatherForecast
- {
- public int Id { get; set; }
- public DateTime Date { get; set; }
- public int TemperatureC { get; set; }
- public string Summary { get; set; }
- public int TemperatureF => 32 + (int)(TemperatureC / 0.5556);
- }
- }
|