Advertisement
Guest User

Untitled

a guest
Aug 9th, 2017
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.09 KB | None | 0 0
  1. @{
  2. int offsetLeft = 1;
  3. int offsetRight = 1;
  4. int offset = offsetLeft + offsetRight + 1;
  5. int minPage = Math.Max(Math.Min(Model.Page - offsetLeft, Model.TotalPages - offset), 1);
  6. int maxRange = Math.Min(Model.Page + offsetRight, Model.TotalPages);
  7. }
  8. <ol class="nav-pagination">
  9. @if(minPage > 1)
  10. {
  11. <li class="nav-item nav-prev">
  12. <a href="@Umbraco.ModifyQueryString("page", minPage)" class="nav-link">&lsaquo;</a>
  13. </li>
  14. }
  15. @if (minPage > 1)
  16. {
  17. <li class="nav-item">
  18. <a href="@Umbraco.ModifyQueryString("page", 1)" class="nav-link">1</a>
  19. </li>
  20.  
  21. if (minPage > 3)
  22. {
  23. <li class="nav-item nav-select">
  24. <a class="nav-link" href="#" title="Go to page">...</a>
  25. <ol>
  26. @for(var i = 2; i < minPage; i++)
  27. {
  28. <li class="nav-item"><a href="@Umbraco.ModifyQueryString("page", i)" class="nav-link">@i</a></li>
  29. }
  30. </ol>
  31. <select name="page">
  32. @for(var i = maxRange + 1; i < Model.TotalPages; i++)
  33. {
  34. <option value="@i">@i</option>
  35. }
  36. </select>
  37. </li>
  38. }
  39. else if(minPage > 2)
  40. {
  41. <li class="nav-item">
  42. <a href="@Umbraco.ModifyQueryString("page", 2)" class="nav-link">2</a>
  43. </li>
  44. }
  45. }
  46. @for (var i = minPage; i <= maxRange; i++)
  47. {
  48. <li class="nav-item @(Model.Page == i ? "active" : null)">
  49. <a class="nav-link" href="@Umbraco.ModifyQueryString("page", i)">@i</a>
  50. </li>
  51. }
  52. @if (maxRange < Model.TotalPages) {
  53. if(Model.TotalPages - maxRange > 2)
  54. {
  55. <li class="nav-item nav-select">
  56. <a class="nav-link" href="#" title="Go to page">...</a>
  57. <ol>
  58. @for(var i = maxRange + 1; i < Model.TotalPages; i++)
  59. {
  60. <li class="nav-item"><a href="@Umbraco.ModifyQueryString("page", i)" class="nav-link">@i</a></li>
  61. }
  62. </ol>
  63. <select name="page">
  64. @for(var i = maxRange + 1; i < Model.TotalPages; i++)
  65. {
  66. <option value="@i">@i</option>
  67. }
  68. </select>
  69. </li>
  70. }
  71. else if(Model.TotalPages - maxRange > 1)
  72. {
  73. <li class="nav-item">
  74. <a href="@Umbraco.ModifyQueryString("page", Model.TotalPages - 1)" class="nav-link">@(Model.TotalPages-1)</a>
  75. </li>
  76. }
  77. <li class="nav-item">
  78. <a href="@Umbraco.ModifyQueryString("page", Model.TotalPages)" class="nav-link">@Model.TotalPages</a>
  79. </li>
  80. }
  81. <li class="nav-item nav-next">
  82. @if (Model.TotalPages == Model.Page + 1)
  83. {
  84. <a class="nav-link">&rsaquo;</a>
  85. }
  86. else
  87. {
  88. <a href="@Umbraco.ModifyQueryString("page", Model.Page + 1)" class="nav-link">&rsaquo;</a>
  89. }
  90. </li>
  91. </ol>
  92. <script>
  93. var navSelects = document.querySelectorAll('.nav-select');
  94. for (var i = 0; i < navSelects.length; i++) {
  95. var navSelect = navSelects[i];
  96. var link = navSelect.querySelector("a");
  97. link.addEventListener('click', function (e) {
  98. e.preventDefault();
  99. var _this = this;
  100. _this.querySelector('select').click();
  101. }, false);
  102. }
  103. </script>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement