public ActionResult GetStates(JqGridSettings gridSettings) { var states = DatabaseDAL.GetAllStates(); var stateList = new List<State>(); foreach (var state in states) { stateList.Add(state); } int totalPages; int totalRecords; var allStates = stateList.AsQueryable(); var results = jqGridDataManager.GetGridData<State>(gridSettings, allStates, out totalPages, out totalRecords); JqGridResult result = new JqGridResult() { Page = gridSettings.PageIndex, Records = totalRecords, Total = totalPages, Rows = results.ToList() }; return Json(result, JsonRequestBehavior.AllowGet); }
// TODO: Move to more reasonable location. public static IQueryable <T> GetGridData <T>( JqGridSettings gridSettings, IQueryable <T> source, out int totalPages, out int totalRecords) where T : class { IQueryable <T> entities; if (gridSettings.IsSearch) { var parameters = new object[] { }; var linq = gridSettings.Where.ToDynamicStatement(out parameters); if (string.IsNullOrWhiteSpace(linq)) { totalRecords = source.Count(); entities = source .OrderBy(string.Format("{0} {1}", gridSettings.SortColumn, gridSettings.SortOrder)) .Skip((gridSettings.PageIndex - 1) * gridSettings.PageSize) .Take(gridSettings.PageSize); } else { var searchResult = source.Where(linq, parameters); totalRecords = searchResult.Count(); entities = searchResult .OrderBy(string.Format("{0} {1}", gridSettings.SortColumn, gridSettings.SortOrder)) .Skip((gridSettings.PageIndex - 1) * gridSettings.PageSize) .Take(gridSettings.PageSize); } } else { totalRecords = source.Count(); entities = source .OrderBy(string.Format("{0} {1}", gridSettings.SortColumn, gridSettings.SortOrder)) .Skip((gridSettings.PageIndex - 1) * gridSettings.PageSize) .Take(gridSettings.PageSize); } totalPages = (int)Math.Ceiling((float)totalRecords / (float)gridSettings.PageSize); return(entities); }
public ActionResult GetCustomers(JqGridSettings gridSettings) { int totalPages; int totalRecords; var allProducts = DatabaseDAL.GetAllProductModels(); var results = jqGridDataManager.GetGridData<ProductModel>(gridSettings, allProducts, out totalPages, out totalRecords); JqGridResult result = new JqGridResult() { Page = gridSettings.PageIndex, Records = totalRecords, Total = totalPages, Rows = results.ToList() }; return Json(result, JsonRequestBehavior.AllowGet); }