ajout de la suite du cours mais marche pas

master
Chloé MOURGAND 3 years ago
parent 6a9c303965
commit 5e44511d5e

@ -6,4 +6,10 @@
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup> </PropertyGroup>
<ItemGroup>
<PackageReference Include="Blazorise.Bootstrap" Version="1.1.2" />
<PackageReference Include="Blazorise.DataGrid" Version="1.1.2" />
<PackageReference Include="Blazorise.Icons.FontAwesome" Version="1.1.2" />
</ItemGroup>
</Project> </Project>

@ -1,11 +1,29 @@
@page "/list" @page "/list"
@using MyFirstBlazor.Models;
<h3>List</h3> <h3>List</h3>
@if (items != null) <DataGrid TItem="Item"
{ Data="@items"
foreach (var item in items) ReadData="@OnReadData"
{ TotalItems="@totalItem"
<div>@item.Id</div> PageSize="10"
} ShowPager
} Responsive>
<DataGridColumn TItem="Item" Field="@nameof(Item.Id)" Caption="#" />
<DataGridColumn TItem="Item" Field="@nameof(Item.DisplayName)" Caption="Display name" />
<DataGridColumn TItem="Item" Field="@nameof(Item.StackSize)" Caption="Stack size" />
<DataGridColumn TItem="Item" Field="@nameof(Item.MaxDurability)" Caption="Maximum durability" />
<DataGridColumn TItem="Item" Field="@nameof(Item.EnchantCategories)" Caption="Enchant categories">
<DisplayTemplate>
@(string.Join(", ", ((Item)context).EnchantCategories))
</DisplayTemplate>
</DataGridColumn>
<DataGridColumn TItem="Item" Field="@nameof(Item.RepairWith)" Caption="Repair with">
<DisplayTemplate>
@(string.Join(", ", ((Item)context).RepairWith))
</DisplayTemplate>
</DataGridColumn>
<DataGridColumn TItem="Item" Field="@nameof(Item.CreatedDate)" Caption="Created date" DisplayFormat="{0:d}" DisplayFormatProvider="@System.Globalization.CultureInfo.GetCultureInfo("fr-FR")" />
</DataGrid>

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

@ -28,5 +28,9 @@
</div> </div>
<script src="_framework/blazor.server.js"></script> <script src="_framework/blazor.server.js"></script>
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.15.4/css/all.css">
<link href="_content/Blazorise/blazorise.css" rel="stylesheet" />
<link href="_content/Blazorise.Bootstrap/blazorise.bootstrap.css" rel="stylesheet" />
</body> </body>
</html> </html>

@ -1,3 +1,6 @@
using Blazorise;
using Blazorise.Bootstrap;
using Blazorise.Icons.FontAwesome;
using Microsoft.AspNetCore.Components; using Microsoft.AspNetCore.Components;
using Microsoft.AspNetCore.Components.Web; using Microsoft.AspNetCore.Components.Web;
using MyFirstBlazor.Data; using MyFirstBlazor.Data;
@ -9,6 +12,10 @@ builder.Services.AddRazorPages();
builder.Services.AddServerSideBlazor(); builder.Services.AddServerSideBlazor();
builder.Services.AddSingleton<WeatherForecastService>(); builder.Services.AddSingleton<WeatherForecastService>();
builder.Services.AddHttpClient(); builder.Services.AddHttpClient();
builder.Services
.AddBlazorise()
.AddBootstrapProviders()
.AddFontAwesomeIcons();
var app = builder.Build(); var app = builder.Build();

@ -8,3 +8,4 @@
@using Microsoft.JSInterop @using Microsoft.JSInterop
@using MyFirstBlazor @using MyFirstBlazor
@using MyFirstBlazor.Shared @using MyFirstBlazor.Shared
@using Blazorise.DataGrid

Loading…
Cancel
Save