Skip to content

Instantly share code, notes, and snippets.

@johnw86
Created May 15, 2012 11:01
Show Gist options
  • Save johnw86/2700850 to your computer and use it in GitHub Desktop.
Save johnw86/2700850 to your computer and use it in GitHub Desktop.
Razor google style paging
@*Required variables,
Page - being the current page
PageCount - total pages
*@
@if (PageCount > 0)
{
var pagesEachWay = 2;
var pagesToShow = 5;
var startPage = Page - pagesEachWay;
if (startPage < 0)
{
startPage = 0;
}
var endPage = startPage + pagesToShow;
if (endPage > PageCount)
{
startPage = startPage - (endPage - PageCount);
endPage = PageCount;
}
if (startPage < 0)
{
startPage = 0;
}
<div class="pagination pagination-centered">
<ul>
<li @(Page > 0 ? "" : "class=disabled")>
<a href="@Url(Page - 1)">Prev</a>
</li>
@for (var i = startPage; i < endPage; i++)
{
<li @(i == Page ? "class=active" : "")>
<a href="@Url(i)">@(i + 1)</a>
</li>
}
<li @(Page < (PageCount - 1) ? "" : "class=disabled")>
<a href="@Url(Page + 1)">Next</a>
</li>
</ul>
</div>
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment