ASP.NET MVC分頁功能實現(xiàn):PagedList
更多的權(quán)利,就意味著更多的責(zé)任。在MVC中,我們幾乎不再使用Drag and Drop來的各種控件,因此我們就不再受這些控件所提供的功能的限制,但是當(dāng)然也就失去了這些控件所帶來的好處和便利。比如GridView以及它所附帶的分頁功能。本文將利用LINQ的defered execution的特性來實現(xiàn)一個通用的分頁和導(dǎo)航的PagedList,從而實現(xiàn)ASP.NET MVC分頁功能。
ASP.NET MVC分頁·CONTENT
為了使PagedList能有分頁和導(dǎo)航的功能,因此我們需要知道總共有多少行數(shù)據(jù),需要有多少個也需要顯示。故可以定義這樣一個接口
為了使這個通用的PagedList能真正的“通用”,就需要時使用泛型。.Net已經(jīng)提供了很好了一個很好的基類,我們繼承它就好了,同時實現(xiàn)IPagedList接口
對PagedList的構(gòu)造函數(shù)中的最后一句代碼稍作解釋: index為從0開始計算的頁數(shù),可以為Null, pageSize 為每頁顯示的記錄數(shù)。最后對ToList()的調(diào)用會使得這個IQueryable被執(zhí)行,返回的List被加到這個PagedList中。
ASP.NET MVC分頁·Application
PagedList基本完成了,該實際應(yīng)用了。在頁面文件中,根據(jù)PagedList的數(shù)據(jù),對CSS做一些設(shè)置,就可以實現(xiàn)分頁和導(dǎo)航的功能。
OK,We have done here. ASP.NET MVC分頁功能實現(xiàn)。
這里沒想到好方法把Controller的信息加進(jìn)去,只好暫時hard code了。
【編輯推薦】