feat : ajout de la page "liste de players"

pages_listes
Damien NORTIER 2 years ago
parent 69cafafb14
commit 8980c31462

@ -0,0 +1,15 @@
@page "/players"
@using Blazor.Models;
@using Blazorise.DataGrid
<h3>Players</h3>
<DataGrid TItem="Player"
Data="@players"
ReadData="@OnReadData"
TotalItems="@totalItem"
PageSize="10"
ShowPager
Responsive>
<DataGridColumn TItem="Player" Field="@nameof(Player.Id)" Caption="#" />
<DataGridColumn TItem="Player" Field="@nameof(Player.Nickname)" Caption="Display nickname" />
</DataGrid>

@ -0,0 +1,37 @@
using Microsoft.AspNetCore.Components;
using Blazor.Models;
using Blazorise.DataGrid;
namespace Blazor.Pages
{
public partial class Players
{
public List<Player> players;
private int totalItem;
[Inject]
public HttpClient Http { get; set; }
[Inject]
public NavigationManager NavigationManager { get; set; }
private async Task OnReadData(DataGridReadDataEventArgs<Player> e)
{
if (e.CancellationToken.IsCancellationRequested)
{
return;
}
// When you use a real API, we use this follow code
//var response = await Http.GetJsonAsync<Item[]>( $"http://my-api/api/data?page={e.Page}&pageSize={e.PageSize}" );
var response = (await Http.GetFromJsonAsync<Player[]>($"{NavigationManager.BaseUri}fake-player.json")).Skip((e.Page - 1) * e.PageSize).Take(e.PageSize).ToList();
if (!e.CancellationToken.IsCancellationRequested)
{
totalItem = (await Http.GetFromJsonAsync<List<Player>>($"{NavigationManager.BaseUri}fake-player.json")).Count;
players = new List<Player>(response); // an actual data for the current page
}
}
}
}
Loading…
Cancel
Save