tôi đã xác định lớp tĩnh để cho phép phân trang:cách viết phương pháp mở rộng cho phân trang trong MVC
public static class Pager
{
public static IEnumerable<T> PageData<T>(this IEnumerable<T> source, int currentPage, int pageSize)
{
var sourceCopy = source.ToList();
if (sourceCopy.Count() < pageSize)
{
return sourceCopy;
}
return sourceCopy.Skip((currentPage - 1) * pageSize).Take(pageSize);
}
}
và tôi muốn ở bộ điều khiển của tôi để làm như:
var pagedDataCourses = products.OrderBy(p => p.productName).PageData(currentPage, pageSize);
vì vậy, nơi tôi có thể đặt lớp/phương thức tĩnh đó để tôi có thể nhận được phương thức mở rộng để phân trang trong tất cả bộ điều khiển.
'gọi OrderBy' phải có mặt ở đó trong truy vấn được cung cấp. Nếu không, 'Skip/Take' sẽ không hoạt động đối với các nhà cung cấp LINQ quan hệ. – Eranga