public RepeaterPager(int currentPage, int objectsCount, int pageSize = 20) { this.PageSize = pageSize; this.CurrentPage = currentPage; this.ObjectsCount = objectsCount; this.TotalPages = (int)Math.Ceiling((double)objectsCount / pageSize); this.Items = new List <RepeaterPagerItem>(); int incrementor = (int)Math.Floor((double)currentPage / this.MAX_PAGER_ITEMS) * 10; if (currentPage > this.MAX_PAGER_ITEMS) { RepeaterPagerItem prevSequence = new RepeaterPagerItem((incrementor - 1).ToString(), "..."); this.Items.Add(prevSequence); } int lastItem = this.MAX_PAGER_ITEMS < this.TotalPages ? this.MAX_PAGER_ITEMS : this.TotalPages; for (int i = 1; i <= lastItem; i++) { int page = (i + incrementor); if (page > this.TotalPages) { break; } string pageNumberAsString = page.ToString(); RepeaterPagerItem item = new RepeaterPagerItem(pageNumberAsString, pageNumberAsString); this.Items.Add(item); } int lastInPager = incrementor + this.MAX_PAGER_ITEMS; if (lastInPager < this.TotalPages) { RepeaterPagerItem nextSequence = new RepeaterPagerItem((lastInPager + 1).ToString(), "..."); this.Items.Add(nextSequence); } }
public RepeaterPager(int currentPage, int objectsCount, int pageSize = 20) { this.PageSize = pageSize; this.CurrentPage = currentPage; this.ObjectsCount = objectsCount; this.TotalPages = (int)Math.Ceiling((double)objectsCount / pageSize); this.Items = new List<RepeaterPagerItem>(); int incrementor = (int)Math.Floor((double)currentPage / this.MAX_PAGER_ITEMS) * 10; if (currentPage > this.MAX_PAGER_ITEMS) { RepeaterPagerItem prevSequence = new RepeaterPagerItem((incrementor - 1).ToString(), "..."); this.Items.Add(prevSequence); } int lastItem = this.MAX_PAGER_ITEMS < this.TotalPages ? this.MAX_PAGER_ITEMS : this.TotalPages; for (int i = 1; i <= lastItem; i++) { int page = (i + incrementor); if (page > this.TotalPages) { break; } string pageNumberAsString = page.ToString(); RepeaterPagerItem item = new RepeaterPagerItem(pageNumberAsString, pageNumberAsString); this.Items.Add(item); } int lastInPager = incrementor + this.MAX_PAGER_ITEMS; if (lastInPager < this.TotalPages) { RepeaterPagerItem nextSequence = new RepeaterPagerItem((lastInPager + 1).ToString(), "..."); this.Items.Add(nextSequence); } }