ricardojlp
9/6/2015 - 5:02 PM

Pagination helper

Pagination helper

@helper createNav(int num_currentPage, int num_maxPages, int num_visiblePages = 5, string str_pageBaseHref = "/Default.aspx?ID={{PageID}}&{{ParagraphID}}&Page="){
  str_pageBaseHref = str_pageBaseHref.Contains("{{PageID}}") ? str_pageBaseHref.Replace("{{PageID}}", Pageview.Page.ID.ToString()) : str_pageBaseHref;
  str_pageBaseHref = str_pageBaseHref.Contains("{{ParagraphID}}") ? str_pageBaseHref.Replace("{{ParagraphID}}", Pageview.CurrentParagraph.ID.ToString()) : str_pageBaseHref;

  num_visiblePages = num_visiblePages < num_maxPages ? num_visiblePages : num_maxPages;
  int num_startIndex = Decimal.ToInt32(Math.Ceiling((decimal)num_visiblePages/2));
  int num_endIndex = Decimal.ToInt32(Math.Floor((decimal)num_visiblePages/2));
  num_endIndex = num_currentPage-num_startIndex < 0 ? num_endIndex + (num_startIndex-num_currentPage) : num_currentPage >= num_maxPages-num_endIndex ? num_maxPages-num_currentPage : num_endIndex;
  num_startIndex = num_currentPage-num_startIndex < 0 ? num_currentPage : num_currentPage >= num_maxPages-(num_startIndex-1) ? num_visiblePages-num_endIndex : num_startIndex;

  for(int i=num_currentPage-num_startIndex; i<num_currentPage+num_endIndex; i+=1){
    bool bol_isCurrentPage = (i+1) == num_currentPage ? true : false;
    string str_href = bol_isCurrentPage ? "javascript: void(0);" : str_pageBaseHref + (i+1);
    string str_pageClass = bol_isCurrentPage ? "buttonLink disabled currentPage" : "buttonLink";
    <a class="noSymbol @str_pageClass" href="@str_href">@(i+1)</a>
  }
}