public async Task<ActionResult> Index(PagingInfo pi = null) { pathToFile = Server.MapPath("~/App_Data/json.json"); List<Dictionary<string, object>> jsonData = null; jsonData = await JsonHelper.ReadJsonFromFileAndCache(pathToFile, HttpContext.Cache); if (pi != null) { if (!pi.IsDefault) { ViewBag.PagingInfo = pi; return View(); } } PagingInfo info = new PagingInfo(); info.IsDefault = false; info.PageSize = 3; info.PageCount = Convert.ToInt32(Math.Ceiling((double)(jsonData.Count / info.PageSize))); info.CurrentPageIndex = 0; ViewBag.PagingInfo = info; return View(); }
public async Task<List<Dictionary<string, object>>> GetData(PagingInfo info) { List<Dictionary<string, object>> jsonData = null; if (HttpContext.Cache["jsonData"] == null) { jsonData = await JsonHelper.ReadJsonFromFileAndCache(pathToFile, HttpContext.Cache); } else { jsonData = (List<Dictionary<string, object>>)HttpContext.Cache["jsonData"]; } List<Dictionary<string, object>> result = jsonData.Skip(info.CurrentPageIndex * info.PageSize).Take(info.PageSize).ToList(); return result; }
public async Task<JsonResult> GetDataUsingJson(PagingInfo info) { ViewBag.PagingInfo = info; return Json(await GetData(info), JsonRequestBehavior.AllowGet); }
public async Task<PartialViewResult> GetDataUsingView(PagingInfo info) { ViewBag.PagingInfo = info; return PartialView(await GetData(info)); }
public PagingInfo(PagingInfo info) { PageSize = info.PageSize; PageCount = info.PageCount; CurrentPageIndex = info.CurrentPageIndex; }
public PagingInfo(PagingInfo info, int currentPageIndex) { PageSize = info.PageSize; PageCount = info.PageCount; CurrentPageIndex = currentPageIndex; }