// GET: Angular public JsonResult Data(string sortOrder, string currentFilter, string searchString, int?page, int?pageSize, string action) { ViewPagination view = new ViewPagination(); if (Session.IsNewSession) { data = personsRepository.InitPersons(); Session["Persons"] = data; } else { data = Session["Persons"] as IEnumerable <Person>; } var result = data; // search result = SearchArray(searchString, result); // filter result = SortOrder(sortOrder, result); // set up pagination view = Pagination(result, view, pageSize, page); return(Json(view, JsonRequestBehavior.AllowGet)); }
public void viewPaging() { // Arrange HomeController controller = new HomeController(); List <Person> persons = new List <Person>(); for (int i = 1; i < 15; i++) { Person person = new Person() { ID = i, Firstname = "Name" + i.ToString(), Lastname = "LastName" + i.ToString(), Socialnumber = "123456-7890" + i.ToString(), PersonCategory = "test" + i.ToString() }; persons.Add(person); } IEnumerable <Person> result = persons as IEnumerable <Person>; ViewPagination view = new ViewPagination(); int?pageSize = 10; int?page = 1; // Act ViewPagination viewPagination = controller.Pagination(result, view, pageSize, page); // Assert Assert.AreEqual(viewPagination.pageCount, "2"); Assert.AreEqual(viewPagination.pageNumber, 1); Assert.AreEqual(viewPagination.pageSize, 10); Assert.AreEqual(viewPagination.viewResult.Count(), 10); page = 2; // Act viewPagination = controller.Pagination(result, view, pageSize, page); // Assert Assert.AreEqual(viewPagination.pageCount, "2"); Assert.AreEqual(viewPagination.pageNumber, 2); Assert.AreEqual(viewPagination.pageSize, 10); Assert.AreEqual(viewPagination.viewResult.Count(), 4); page = null; // Act viewPagination = controller.Pagination(result, view, pageSize, page); // Assert Assert.AreEqual(viewPagination.pageCount, "2"); Assert.AreEqual(viewPagination.pageNumber, 1); Assert.AreEqual(viewPagination.pageSize, 10); Assert.AreEqual(viewPagination.viewResult.Count(), 10); }
public ViewPagination Pagination(IEnumerable <Person> result, ViewPagination view, int?pageSize, int?page) { decimal viewPageSize = pageSize == null ? 10 : pageSize.Value; int viewPage = page == null ? 0 : page.Value - 1; decimal resultCount = result.Count(); view.pageSize = (int)viewPageSize; decimal calcPageCount = resultCount / viewPageSize; view.pageCount = Math.Ceiling(calcPageCount).ToString(); if (view.pageCount == "0") { view.pageCount = "1"; } view.viewResult = result.Skip(((int)viewPage) * (int)viewPageSize).Take((int)viewPageSize); view.pageNumber = page == null ? 1 : page.Value; return(view); }
//PagedList public ActionResult Index(string sortOrder, string currentFilter, string searchString, int?page, int?pageSize, string action) { ViewPagination view = new ViewPagination(); List <int> pageSizeList = new List <int>() { 10, 50, 100 }; ViewBag.pageSize = pageSizeList; if (Session.IsNewSession) { data = personsRepository.InitPersons(); Session["Persons"] = data; } else { data = Session["Persons"] as IEnumerable <Person>; } var result = data; ViewBag.Saved = SetMessage(action); ViewBag.NameSortParm = String.IsNullOrEmpty(sortOrder) ? "name_desc" : ""; ViewBag.SocialSortParm = sortOrder == "Social" ? "social_desc" : "Social"; ViewBag.TypeSortParm = sortOrder == "Type" ? "type_desc" : "Type"; ViewBag.CurrentSort = sortOrder; ViewBag.selectedPageSize = pageSize; ViewBag.page = page; // search result = SearchArray(currentFilter, searchString, result); // filter result = SortOrder(sortOrder, result); // set up pagination view = Pagination(result, view, pageSize, page); return(View(view)); }