diff --git a/EgwCoreLib.BlazorTest/Data/WeatherForecastService.cs b/EgwCoreLib.BlazorTest/Data/WeatherForecastService.cs index 912211c..4ece0c9 100644 --- a/EgwCoreLib.BlazorTest/Data/WeatherForecastService.cs +++ b/EgwCoreLib.BlazorTest/Data/WeatherForecastService.cs @@ -9,7 +9,7 @@ namespace EgwCoreLib.BlazorTest.Data public Task GetForecastAsync(DateTime startDate) { - return Task.FromResult(Enumerable.Range(1, 5).Select(index => new WeatherForecast + return Task.FromResult(Enumerable.Range(1, 25).Select(index => new WeatherForecast { Date = startDate.AddDays(index), TemperatureC = Random.Shared.Next(-20, 55), diff --git a/EgwCoreLib.BlazorTest/Pages/FetchData.razor b/EgwCoreLib.BlazorTest/Pages/FetchData.razor index 9c580cd..d11ed1c 100644 --- a/EgwCoreLib.BlazorTest/Pages/FetchData.razor +++ b/EgwCoreLib.BlazorTest/Pages/FetchData.razor @@ -36,28 +36,7 @@ else } + } -@code { - private WeatherForecast[]? forecasts; - protected override async Task OnInitializedAsync() - { - await ReloadAllData(); - } - - protected async Task ReloadAllData() - { - forecasts = await ForecastService.GetForecastAsync(DateTime.Now); - } - - private bool sortAsc = true; - private string sortField = ""; - - protected async Task SortRequested(Sorter.SortCallBack e) - { - sortField = e.ParamName; - sortAsc = e.IsAscending; - await ReloadAllData(); - } -} diff --git a/EgwCoreLib.BlazorTest/Pages/FetchData.razor.cs b/EgwCoreLib.BlazorTest/Pages/FetchData.razor.cs new file mode 100644 index 0000000..0ee27d3 --- /dev/null +++ b/EgwCoreLib.BlazorTest/Pages/FetchData.razor.cs @@ -0,0 +1,70 @@ +using EgwCoreLib.BlazorTest.Data; +using EgwCoreLib.Razor; + +namespace EgwCoreLib.BlazorTest.Pages +{ + public partial class FetchData + { + #region Protected Properties + + protected List PageSizeEnab { get; set; } = new List(); + + #endregion Protected Properties + + #region Protected Methods + + protected override async Task OnInitializedAsync() + { + PageSizeEnab = new List() + { + 4,8,12,16,20,24,28,32,36,40 + }; + await ReloadAllData(); + } + + protected async Task ReloadAllData() + { + var rawData = await ForecastService.GetForecastAsync(DateTime.Now); + totalCount = rawData.Count(); + forecasts = rawData.Skip(numRecord * (currPage - 1)).Take(numRecord).ToList(); + } + + protected async Task SetCurrPage(int newNum) + { + currPage = newNum; + await ReloadAllData(); + } + + protected async Task SetNumRec(int newNum) + { + numRecord = newNum; + await ReloadAllData(); + } + + protected async Task SortRequested(Sorter.SortCallBack e) + { + sortField = e.ParamName; + sortAsc = e.IsAscending; + await ReloadAllData(); + } + + #endregion Protected Methods + + #region Private Fields + + private List? forecasts; + private bool sortAsc = true; + private string sortField = ""; + + #endregion Private Fields + + #region Private Properties + + private int currPage { get; set; } = 1; + private bool isLoading { get; set; } = false; + private int numRecord { get; set; } = 8; + private int totalCount { get; set; } = 0; + + #endregion Private Properties + } +} \ No newline at end of file diff --git a/EgwCoreLib.Razor/DataPager.razor b/EgwCoreLib.Razor/DataPager.razor index 3b07393..13b1be6 100644 --- a/EgwCoreLib.Razor/DataPager.razor +++ b/EgwCoreLib.Razor/DataPager.razor @@ -53,11 +53,10 @@ {
} diff --git a/EgwCoreLib.Razor/DataPager.razor.cs b/EgwCoreLib.Razor/DataPager.razor.cs index 9e096e2..5e974c8 100644 --- a/EgwCoreLib.Razor/DataPager.razor.cs +++ b/EgwCoreLib.Razor/DataPager.razor.cs @@ -6,6 +6,9 @@ namespace EgwCoreLib.Razor { #region Public Properties + /// + /// Num pagina correntemente selezioanta + /// [Parameter] public int currPage { @@ -24,21 +27,35 @@ namespace EgwCoreLib.Razor } } + /// + /// Export (csv) abilitato + /// [Parameter] public bool exportEnabled { get; set; } = false; + /// + /// Evento richiesta export + /// [Parameter] public EventCallback exportRequested { get; set; } - + /// + /// Filename x export + /// [Parameter] public string fileName { get; set; } = ""; - + /// + /// Evento cambio pagina nel paginatore + /// [Parameter] public EventCallback numPageChanged { get; set; } - + /// + /// PageSize = Num record da mostrare cambiato + /// [Parameter] public EventCallback numRecordChanged { get; set; } - + /// + /// Attuale PageSize + /// [Parameter] public int PageSize { @@ -57,6 +74,9 @@ namespace EgwCoreLib.Razor } } + /// + /// Fase di loading + /// [Parameter] public bool showLoading { @@ -78,10 +98,21 @@ namespace EgwCoreLib.Razor _showLoading = value; } } - + /// + /// Totale record da mostrare + /// [Parameter] public int totalCount { get; set; } = 0; + /// + /// Elenco dei PageSize ammessi + /// + [Parameter] + public List PageSizeList { get; set; } = new List() + { + 5,10,25,50,100 + }; + #endregion Public Properties #region Public Methods