首先在FineUi控件中指定为数据库分页,而不是内存分页。
其次数据库取出总记录项
然后是分页跟排序的方法,十分简单也实用
protected IQueryable<T> Sort<T>(IQueryable<T> q, FineUI.Grid grid)
{
return q.SortBy(grid.SortField + " " + grid.SortDirection);
}
protected IQueryable<T> SortAndPage<T>(IQueryable<T> q, FineUI.Grid grid)
{
if (grid.PageIndex >= grid.PageCount && grid.PageCount >= 1)
{
grid.PageIndex = grid.PageCount - 1;
}
return Sort(q, grid).Skip(grid.PageIndex * grid.PageSize).Take(grid.PageSize);
}