我正从IBM i查询数据并将其显示在网格中。显示所有记录的目的有几个原因:
然而,目前有28,000件物品并且将会增加。现在,我正在使用MvcContrib网格。这是我的代码:
public ActionResult Index(GridSortOptions gridSortOptions, int? page, int? filterPropertyUniqueKey, int? filterPermitNumber)
{
#region Filter and Sort
var permits = buildingPermitRepository.GetOpenPermits();
// Set default sort and apply filters
if (filterPermitNumber.HasValue)
{
permits = permits.Where(w => w.PermitId == filterPermitNumber.Value);
}
// TODO add more filters
if (String.IsNullOrEmpty(gridSortOptions.Column))
{
gridSortOptions.Column = "DateApplied";
gridSortOptions.Direction = SortDirection.Descending;
}
var permitsPagedList = permits.OrderBy(gridSortOptions.Column, gridSortOptions.Direction).AsPagination(page ?? 1, 20);
#endregion
var viewModel = new PermitIndexViewModel
{
BuildingPermits = permitsPagedList,
GridSortOptions = gridSortOptions
};
return View(viewModel);
}
您建议我采取哪些措施来提高显示速度?至少对于后续观点。
答案 0 :(得分:0)
我不知道AsPagination方法是如何工作的,但我们使用 Skip 和 Take 方法。 所以在完成所有过滤后,您的代码可能如下所示:
var permitsPagedList = permits.OrderBy(gridSortOptions.Column, gridSortOptions.Direction).Skip(pageSize * (page -1)).Take(pageSize).ToList();
这个简单的方法只返回我们实际需要的那些行。