public void Init() { diggComponent = new DiggStylePagination(); singlePage = new Page(new string[] {"a", "b", "c"}, 1, 4, 1); secondPageOfThree = new Page(new string[] {"a", "b", "c", "d"}, 2, 4, 10); }
public override void Render() { IEnumerable source = ComponentParams["source"] as IEnumerable; if (source == null) { throw new ViewComponentException( "The grid requires a view component parameter named 'source' which should contain 'IEnumerable' instance"); } ShowStartTable(); ShowHeader(source); ShowRows(source); ShowFooter(); ShowEndTable(); IPaginatedPage page = source as IPaginatedPage; if (page != null) { ShowPagination(page); } }
public void TestExpectedResultForMiddlePageWithSingleItemPage() { IList sampleData = GetSampleListData(); int currentPageIndex = 3; int pageSize = 1; IPaginatedPage page = CreateAbstractPageWithSampleData(sampleData, currentPageIndex, pageSize); Assert.AreEqual(currentPageIndex, page.CurrentPageIndex); Assert.AreEqual(sampleData.Count, page.TotalPages); Assert.IsTrue(page.HasPreviousPage); Assert.IsTrue(page.HasNextPage); Assert.AreEqual(currentPageIndex + 1, page.NextPageIndex); Assert.AreEqual(currentPageIndex - 1, page.PreviousPageIndex); Assert.AreEqual(3, page.FirstItemIndex); Assert.AreEqual(3, page.LastItemIndex); Assert.AreEqual(sampleData.Count, page.TotalItems); Assert.AreEqual(pageSize, page.PageSize); Assert.AreEqual(page.FirstItem, page.LastItem); Assert.AreEqual("three", page.FirstItem); Assert.AreEqual(1, page.CurrentPageSize); AssertHasPageIsTrueBetween(page, 1, sampleData.Count, -1, sampleData.Count + 2); AssertGetEnumeratorItterateOverExpectedValues(page, "three"); }
private void ShowPagination(IPaginatedPage page) { if (Context.HasSection("pagination")) { Context.RenderSection("pagination"); return; } PaginationHelper paginationHelper = (PaginationHelper)Context.ContextVars["PaginationHelper"]; StringWriter output = new StringWriter(); output.Write(@"<div class='pagination'><span class='paginationLeft'> Showing {0} - {1} of {2} </span><span class='paginationRight'>", page.FirstItem, page.LastItem, page.TotalItems); if (page.HasFirst) { CreateLink(output, paginationHelper, 1, "first"); } else { output.Write("first"); } output.Write(" | "); if (page.HasPrevious) { CreateLink(output, paginationHelper, page.PreviousIndex, "prev"); } else { output.Write("prev"); } output.Write(" | "); if (page.HasNext) { CreateLink(output, paginationHelper, page.NextIndex, "next"); } else { output.Write("next"); } output.Write(" | "); if (page.HasLast) { CreateLink(output, paginationHelper, page.LastIndex, "last"); } else { output.Write("last"); } output.Write(@"</span></div>"); RenderText(output.ToString()); }
public void Init() { diggComponent = new DiggStylePagination(); singlePage = new Page(new[] {"a", "b", "c"}, 1, 4, 1); secondPageOfThree = new Page(new[] {"a", "b", "c", "d"}, 2, 4, 10); fifthPageOfTwelve = new Page(new[] {"e"}, 5, 1, 12); BuildEngineContext("area", "controller", "action"); }
public void Init() { diggComponent = new DiggStylePagination(); singlePage = new Page(new[] { "a", "b", "c" }, 1, 4, 1); secondPageOfThree = new Page(new[] { "a", "b", "c", "d" }, 2, 4, 10); fifthPageOfTwelve = new Page(new[] { "e" }, 5, 1, 12); BuildEngineContext("area", "controller", "action"); }
public void Init() { component = new SelectStylePagination(); emptyPage = new Page(new string[0], 1, 10, 0); singlePage = new Page(new[] { "a", "b", "c" }, 1, 4, 1); secondPageOfThree = new Page(new[] { "a", "b", "c", "d" }, 2, 4, 10); BuildEngineContext("area", "controller", "action"); }
public void Init() { component = new SelectStylePagination(); emptyPage = new Page(new string[0], 1, 10, 0); singlePage = new Page(new string[] { "a", "b", "c" }, 1, 4, 1); secondPageOfThree = new Page(new string[] { "a", "b", "c", "d" }, 2, 4, 10); BuildEngineContext("area", "controller", "action"); }
protected static void AssertGetEnumeratorItterateOverExpectedValues(IPaginatedPage page, params string[] values) { int currentPageIndex = 0; foreach (string value in page) { Assert.AreEqual(values[currentPageIndex], value); ++currentPageIndex; } }
public void CustomPaginationForGenericCollection() { IList <string> items = new List <string> { "1", "2", "3" }; /* First page */ IPaginatedPage page = PaginationHelper.CreateCustomPage(items, 3, 1, 8); Assert.IsNotNull(page); Assert.AreEqual(1, page.FirstItemIndex); Assert.AreEqual(3, page.LastItemIndex); Assert.AreEqual(8, page.TotalItems); Assert.IsTrue(page.HasNextPage); Assert.IsFalse(page.HasPreviousPage); /* Second page */ items.Clear(); items.Add("4"); items.Add("5"); items.Add("6"); page = PaginationHelper.CreateCustomPage(items, 3, 2, 8); Assert.IsNotNull(page); Assert.AreEqual(4, page.FirstItemIndex); Assert.AreEqual(6, page.LastItemIndex); Assert.AreEqual(8, page.TotalItems); Assert.IsTrue(page.HasNextPage); Assert.IsTrue(page.HasPreviousPage); /* Third page, partial */ items.Clear(); items.Add("7"); items.Add("8"); page = PaginationHelper.CreateCustomPage(items, 3, 3, 8); Assert.IsNotNull(page); Assert.AreEqual(7, page.FirstItemIndex); Assert.AreEqual(8, page.LastItemIndex); Assert.AreEqual(8, page.TotalItems); Assert.IsFalse(page.HasNextPage); Assert.IsTrue(page.HasPreviousPage); }
public void PagingAndRepeater(int id) { var repos = new BirdRepository(); IList <Bird> birds = repos.GetBirds(); IPaginatedPage items = PaginationHelper.CreatePagination( birds, // list 10, // number of items per page id ); PropertyBag["items"] = items; }
private static void AssertHasPageIsTrueBetween(IPaginatedPage page, int firstPageIndex, int lastPageIndex, int rangeLowerBound, int rangeUpperBound) { for (int i = rangeLowerBound, max = rangeUpperBound; i < max; ++i) { if (i < firstPageIndex || i > lastPageIndex) { Assert.IsFalse(page.HasPage(i), "expecting false for HasPage({0})", i); } else { Assert.IsTrue(page.HasPage(i), "expecting true for HasPage({0})", i); } } }
public void UsageWithGenerics() { IList <int> items = new List <int>(); for (var i = 1; i <= 15; i++) { items.Add(i); } // First page IPaginatedPage page = PaginationHelper.CreatePagination(items, 5, 1); Assert.IsNotNull(page); Assert.AreEqual(1, page.FirstItemIndex); Assert.AreEqual(5, page.LastItemIndex); Assert.AreEqual(15, page.TotalItems); Assert.IsTrue(page.HasNextPage); Assert.IsFalse(page.HasPreviousPage); // Second page page = PaginationHelper.CreatePagination(items, 5, 2); Assert.IsNotNull(page); Assert.AreEqual(6, page.FirstItemIndex); Assert.AreEqual(10, page.LastItemIndex); Assert.AreEqual(15, page.TotalItems); Assert.IsTrue(page.HasNextPage); Assert.IsTrue(page.HasPreviousPage); // Last page page = PaginationHelper.CreatePagination(items, 5, 3); Assert.IsNotNull(page); Assert.AreEqual(11, page.FirstItemIndex); Assert.AreEqual(15, page.LastItemIndex); Assert.AreEqual(15, page.TotalItems); Assert.IsFalse(page.HasNextPage); Assert.IsTrue(page.HasPreviousPage); }
public string Show(IPaginatedPage collection) { PaginationHelper paginationHelper = new PaginationHelper(); paginationHelper.SetController(Controller); StringBuilder result = new StringBuilder(); result.AppendFormat("<div class=\"pagination\"><span class=\"pagination-resume\">Showing {0} - {1} of {2}</span>", collection.FirstItem, collection.LastItem, collection.TotalItems); if (collection.TotalItems >= collection.PageSize) { result.Append("<span class=\"pagination-links\">"); if (collection.HasFirst) result.Append(paginationHelper.CreatePageLinkWithCurrentQueryString(1, "first", null)); else result.Append("first"); if (collection.HasPrevious) { result.Append(" | "); result.Append(paginationHelper.CreatePageLinkWithCurrentQueryString(collection.PreviousIndex, "prev", null)); } else result.Append(" | prev"); if (collection.HasNext) { result.Append(" | "); result.Append(paginationHelper.CreatePageLinkWithCurrentQueryString(collection.NextIndex, "next", null)); } else result.Append(" | next"); if (collection.HasLast) { result.Append(" | "); result.Append(paginationHelper.CreatePageLinkWithCurrentQueryString(collection.LastIndex, "last", null)); } else result.Append(" | last"); result.Append("</span>"); } result.Append("</div>"); return result.ToString(); }
public void TestExpectedResultForFirstPageWithTwoItemPerPage() { IList sampleData = GetSampleListData(); int currentPageIndex = 1; int pageSize = 2; IPaginatedPage page = CreateAbstractPageWithSampleData(sampleData, currentPageIndex, pageSize); AssertIsOnFirstPageHavingMultiplePages(page); Assert.AreEqual(currentPageIndex + 1, page.NextPageIndex); Assert.AreEqual(currentPageIndex - 1, page.PreviousPageIndex); Assert.AreEqual(2, page.CurrentPageSize); AssertGetEnumeratorItterateOverExpectedValues(page, "one", "two"); Assert.IsNotNull(page.FirstItem); Assert.IsNotNull(page.LastItem); }
public void TestExpectedResultForMiddlePageWithTwoItemPerPageForGenericPage() { IList sampleData = GetSampleListData(); int currentPageIndex = 2; int pageSize = 2; IPaginatedPage <string> page = CreateGenericCustomPageWithSampleData(sampleData, currentPageIndex, pageSize); Assert.AreEqual(4, page.LastItemIndex); Assert.AreEqual(currentPageIndex + 1, page.NextPageIndex); Assert.AreEqual(currentPageIndex - 1, page.PreviousPageIndex); Assert.AreEqual(2, page.CurrentPageSize); AssertGetEnumeratorItterateOverExpectedValues(page, "three", "four"); Assert.IsNotNull(page.FirstItem); Assert.IsNotNull(page.LastItem); Assert.AreEqual("three", page.FirstItem); Assert.AreEqual("four", page.LastItem); }
private static void AssertIsOnLastPageHavingMultiplePages(IPaginatedPage page) { Assert.IsTrue(page.HasPreviousPage); Assert.IsFalse(page.HasNextPage); Assert.AreEqual(page.TotalPages, page.CurrentPageIndex); }
private void ShowPagination(IPaginatedPage page) { if (Context.HasSection("pagination")) { Context.RenderSection("pagination"); return; } PaginationHelper paginationHelper = (PaginationHelper) Context.ContextVars["PaginationHelper"]; StringWriter output = new StringWriter(); output.Write( @"<div class='pagination'><span class='paginationLeft'> Showing {0} - {1} of {2}</span><span class='paginationRight'>", page.FirstItem, page.LastItem, page.TotalItems); if (page.HasFirst) CreateLink(output, paginationHelper, 1, "first"); else output.Write("first"); output.Write(" | "); if (page.HasPrevious) CreateLink(output, paginationHelper, page.PreviousIndex, "prev"); else output.Write("prev"); output.Write(" | "); if (page.HasNext) CreateLink(output, paginationHelper, page.NextIndex, "next"); else output.Write("next"); output.Write(" | "); if (page.HasLast) CreateLink(output, paginationHelper, page.LastIndex, "last"); else output.Write("last"); output.Write(@"</span></div>"); RenderText(output.ToString()); }