2008-08-21 27 views

Trả lời

29

Nếu bạn có LINQ truy vấn của bạn có chứa tất cả các hàng bạn muốn hiển thị, mã này có thể được sử dụng:

var pageNum = 3; 
var pageSize = 20; 
query = query.Skip((pageNum - 1) * pageSize).Take(pageSize); 

Bạn cũng có thể thực hiện một phương pháp mở rộng trên đối tượng để có thể viết

query.Page(2,50) 

để có được 50 hồ sơ đầu tiên của trang 2. Nếu đó là muốn bạn muốn, thông tin là trên solid code blog.

5

Hi có một điều xấu xa gọi PagedList mà tôi nhận được khi xem Rob Cast Cast Screen.

http://blog.wekeroad.com/2007/12/10/aspnet-mvc-pagedlistt/

Nó có tất cả các Skip và Take thứ được xây dựng trong.

Tất cả bạn cần làm là gọi

var query = from item in DB.Table 
where item.Field == 1 
orderby item.Field2 
select item; 

PagedList<MyType> pagedList = query.ToPagedList(pageIndex, pageSize); 

Hy vọng nó giúp .. Tôi đang sử dụng nó ngay bây giờ và nó hoạt động ok cho linq cho các thực thể. Với LINQ cho các thực thể bạn phải thực hiện một Orderby trước khi bạn có thể sử dụng Skip và Take.

Các vấn đề liên quan