feat : ajout de la page "liste d'answers"
continuous-integration/drone/push Build is passing Details

pages_listes
Damien NORTIER 2 years ago
parent 2a565522e2
commit 69cafafb14

@ -13,4 +13,3 @@
<DataGridColumn TItem="Administrator" Field="@nameof(Administrator.Id)" Caption="#" />
<DataGridColumn TItem="Administrator" Field="@nameof(Administrator.Username)" Caption="Display userName" />
</DataGrid>

@ -0,0 +1,16 @@
@page "/answers"
@using Blazor.Models;
@using Blazorise.DataGrid
<h3>Answers</h3>
<DataGrid TItem="Answer"
Data="@answers"
ReadData="@OnReadData"
TotalItems="@totalItem"
PageSize="10"
ShowPager
Responsive>
<DataGridColumn TItem="Answer" Field="@nameof(Answer.Id)" Caption="#" />
<DataGridColumn TItem="Answer" Field="@nameof(Answer.Content)" Caption="Display content" />
<DataGridColumn TItem="Answer" Field="@nameof(Answer.IdQuestion)" Caption="# question" />
</DataGrid>

@ -0,0 +1,37 @@
using Microsoft.AspNetCore.Components;
using Blazor.Models;
using Blazorise.DataGrid;
namespace Blazor.Pages
{
public partial class Answers
{
public List<Answer> answers;
private int totalItem;
[Inject]
public HttpClient Http { get; set; }
[Inject]
public NavigationManager NavigationManager { get; set; }
private async Task OnReadData(DataGridReadDataEventArgs<Answer> 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<Answer[]>($"{NavigationManager.BaseUri}fake-answer.json")).Skip((e.Page - 1) * e.PageSize).Take(e.PageSize).ToList();
if (!e.CancellationToken.IsCancellationRequested)
{
totalItem = (await Http.GetFromJsonAsync<List<Answer>>($"{NavigationManager.BaseUri}fake-answer.json")).Count;
answers = new List<Answer>(response); // an actual data for the current page
}
}
}
}

@ -18,12 +18,27 @@
<NavLink class="nav-link" href="administrators">
<span class="oi oi-plus" aria-hidden="true"></span> Administrators
</NavLink>
<div class="nav-item px-3">
<NavLink class="nav-link" href="players">
<span class="oi oi-plus" aria-hidden="true"></span> Players
</NavLink>
</div>
</div>
<div class="nav-item px-3">
<NavLink class="nav-link" href="chapters">
<span class="oi oi-plus" aria-hidden="true"></span> Chapters
</NavLink>
</div>
<div class="nav-item px-3">
<NavLink class="nav-link" href="questions">
<span class="oi oi-plus" aria-hidden="true"></span> Questions
</NavLink>
</div>
<div class="nav-item px-3">
<NavLink class="nav-link" href="answers">
<span class="oi oi-plus" aria-hidden="true"></span> Answers
</NavLink>
</div>
<div class="nav-item px-3">
<NavLink class="nav-link" href="fetchdata">
<span class="oi oi-list-rich" aria-hidden="true"></span> Fetch data

Loading…
Cancel
Save