2008-08-21 8 views

Antwort

29

Wenn Sie Ihre Linq-Abfrage, die alle Zeilen enthält, die Sie anzeigen möchten, können Sie diesen Code verwenden:

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

Sie können auch eine Erweiterungsmethode auf dem Objekt machen zu können

schreiben
query.Page(2,50) 

die ersten 50 Datensätze der Seite 2. bekommen Wenn das wollen Sie wollen, ist die Information über die solid code blog.

5

Hallo gibt es eine böse Sache PagedList genannt, die ich wenn man einen Rob Conery Screen Cast sieht.

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

Es hat all die SKIP und Sachen eingebaut Nehmen.

Alles, was Sie tun, ist Anruf

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

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

Hoffe, es hilft .. Ich verwende es jetzt und es funktioniert ok für linq zu entities. Mit Linq zu Entitäten müssen Sie einen Orderby ausführen, bevor Sie Skip and Take verwenden können.

Verwandte Themen