_Pagination.cshtml 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. @model SharedKernel.Helpers.Pagination
  2. @if (Model is not null && Model.TotalRows > 0)
  3. {
  4. <nav id="pagination" aria-label="Page navigation">
  5. <ul class="pagination justify-content-center">
  6. @if (Model.HasPreviousPage)
  7. {
  8. <li class="page-item">
  9. <a class="page-link" href="?pageNum=1&perPage=@Model.PerPage@Model.BuildQueryString()" aria-label="첫 페이지">&lt;&lt;</a>
  10. </li>
  11. <li class="page-item">
  12. <a class="page-link" href="?pageNum=@Model.PrevGroupPage&perPage=@Model.PerPage@Model.BuildQueryString()" aria-label="이전 페이지 그룹">&lt;</a>
  13. </li>
  14. }
  15. else
  16. {
  17. <li class="page-item disabled">
  18. <span class="page-link" aria-label="첫 페이지">&lt;&lt;</span>
  19. </li>
  20. <li class="page-item disabled">
  21. <span class="page-link" aria-label="이전 페이지 그룹">&lt;</span>
  22. </li>
  23. }
  24. <!-- 페이지 번호 표시 -->
  25. @for (int i = Model.StartPage; i <= Model.EndPage; i++)
  26. {
  27. if (i == Model.Page)
  28. {
  29. <li class="page-item active">
  30. <span class="page-link">@i</span>
  31. </li>
  32. }
  33. else
  34. {
  35. <li class="page-item">
  36. <a class="page-link" href="?pageNum=@i&perPage=@Model.PerPage@Model.BuildQueryString()">@i</a>
  37. </li>
  38. }
  39. }
  40. @if (Model.HasNextPage && Model.NextGroupPage <= Model.TotalPage)
  41. {
  42. <li class="page-item">
  43. <a class="page-link" href="?pageNum=@Model.NextGroupPage&perPage=@Model.PerPage@Model.BuildQueryString()" aria-label="다음 페이지 그룹">&gt;</a>
  44. </li>
  45. }
  46. else
  47. {
  48. <li class="page-item disabled">
  49. <span class="page-link" aria-label="다음 페이지 그룹">&gt;</span>
  50. </li>
  51. }
  52. @if (Model.HasNextPage)
  53. {
  54. <li class="page-item">
  55. <a class="page-link" href="?pageNum=@Model.TotalPage&perPage=@Model.PerPage@Model.BuildQueryString()" aria-label="마지막 페이지">&gt;&gt;</a>
  56. </li>
  57. }
  58. else
  59. {
  60. <li class="page-item disabled">
  61. <span class="page-link" aria-label="마지막 페이지">&gt;&gt;</span>
  62. </li>
  63. }
  64. </ul>
  65. </nav>
  66. <br/>
  67. <br/>
  68. }