Advertisement
SMASIF

Pagination Part I (Model)

Nov 3rd, 2020
1,859
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.42 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5.  
  6. namespace HRCap.Models.ViewModels
  7. {
  8.     public class Pager
  9.     {
  10.         public Pager(int totalItems, int? page, int pageSize = 10)
  11.         {
  12.             // calculate total, start and end pages
  13.             var totalPages = (int)Math.Ceiling((decimal)totalItems / (decimal)pageSize);
  14.             var currentPage = page != null ? (int)page : 1;
  15.             var startPage = currentPage - 5;
  16.             var endPage = currentPage + 4;
  17.             if (startPage <= 0)
  18.             {
  19.                 endPage -= (startPage - 1);
  20.                 startPage = 1;
  21.             }
  22.             if (endPage > totalPages)
  23.             {
  24.                 endPage = totalPages;
  25.                 if (endPage > 10)
  26.                 {
  27.                     startPage = endPage - 9;
  28.                 }
  29.             }
  30.  
  31.             TotalItems = totalItems;
  32.             CurrentPage = currentPage;
  33.             PageSize = pageSize;
  34.             TotalPages = totalPages;
  35.             StartPage = startPage;
  36.             EndPage = endPage;
  37.         }
  38.  
  39.         public int TotalItems { get; private set; }
  40.         public int CurrentPage { get; private set; }
  41.         public int PageSize { get; private set; }
  42.         public int TotalPages { get; private set; }
  43.         public int StartPage { get; private set; }
  44.         public int EndPage { get; private set; }
  45.     }
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement