From 1c3dcf10cf8dbdb526cde98df503ab756ac3e3cb Mon Sep 17 00:00:00 2001 From: Thomas TISSIER Date: Fri, 28 Oct 2022 12:01:41 +0200 Subject: [PATCH] 1st part finished --- TutoBlazer/Pages/List.razor | 56 +++++++++++++++------------------- TutoBlazer/Pages/List.razor.cs | 24 ++++++++++++--- 2 files changed, 44 insertions(+), 36 deletions(-) diff --git a/TutoBlazer/Pages/List.razor b/TutoBlazer/Pages/List.razor index c4428e9..59a1f14 100644 --- a/TutoBlazer/Pages/List.razor +++ b/TutoBlazer/Pages/List.razor @@ -1,36 +1,28 @@ @page "/list" +@using Models

List

-@if (items != null) -{ - - - - - - - - - - - - - - - @foreach (var item in items) - { - - - - - - - - - - } - -
IdDisplay NameStack SizeMaximum DurabilityEnchant CategoriesRepair WithCreated Date
@item.Id@item.DisplayName@item.StackSize@item.MaxDurability@(string.Join(", ", item.EnchantCategories))@(string.Join(", ", item.RepairWith))@item.CreatedDate.ToShortDateString()
- -} + + + + + + + + @(string.Join(", ", ((Item)context).EnchantCategories)) + + + + + @(string.Join(", ", ((Item)context).RepairWith)) + + + + \ No newline at end of file diff --git a/TutoBlazer/Pages/List.razor.cs b/TutoBlazer/Pages/List.razor.cs index 27cb4b1..8e67d42 100644 --- a/TutoBlazer/Pages/List.razor.cs +++ b/TutoBlazer/Pages/List.razor.cs @@ -1,11 +1,14 @@ -using Microsoft.AspNetCore.Components; +using Blazorise.DataGrid; +using Microsoft.AspNetCore.Components; using TutoBlazer.Models; namespace TutoBlazer.Pages { public partial class List { - private Item[] items; + private List items; + + private int totalItem; [Inject] public HttpClient Http { get; set; } @@ -13,9 +16,22 @@ namespace TutoBlazer.Pages [Inject] public NavigationManager NavigationManager { get; set; } - protected override async Task OnInitializedAsync() + private async Task OnReadData(DataGridReadDataEventArgs e) { - items = await Http.GetFromJsonAsync($"{NavigationManager.BaseUri}fake-data.json"); + if (e.CancellationToken.IsCancellationRequested) + { + return; + } + + // When you use a real API, we use this follow code + //var response = await Http.GetJsonAsync( $"http://my-api/api/data?page={e.Page}&pageSize={e.PageSize}" ); + var response = (await Http.GetFromJsonAsync($"{NavigationManager.BaseUri}fake-data.json")).Skip((e.Page - 1) * e.PageSize).Take(e.PageSize).ToList(); + + if (!e.CancellationToken.IsCancellationRequested) + { + totalItem = (await Http.GetFromJsonAsync>($"{NavigationManager.BaseUri}fake-data.json")).Count; + items = new List(response); // an actual data for the current page + } } } }