MOSS2010如何使用Linq進行分頁

開始的時候呢,我是運用SPQuery的RowLimit對SPListItemCollection進行分頁的,但是後來發現存儲SPListItemCollectionPosition可能出現異常。

而且最大的缺點是:只能前一頁,後一頁。

原因是,我們首先必需知道上一個PagingInfo,我們纔可以得到下一頁的內容。

並且,無論是 SPQuery類還是ListItemCollectionPosition類都沒有關於整個查詢返回的行數的信息,因此無法得到總共有多少頁或者行

經過學習,哈哈,原來有一個更合我心的東東——Linq

假設列表名稱是‘搜索關鍵字統計’,標題、搜索統計是它的字段,那麼你可以這樣寫

private void LinqBind(int pageIndex, int pageSize)
        {
            EntitiesDataContext ctx = new EntitiesDataContext(SPContext.Current.Site.Url);
            var empQuery = (from item in ctx.搜索關鍵字統計
                            orderby item.搜索統計 descending
                            select new
                            {
                                item.標題,
                                item.搜索統計
                            }).Skip((pageIndex - 1) * pageSize).Take(pageSize);
            rpeShowPages.DataSource = empQuery;
            rpeShowPages.DataBind();
        }

此方法的兩個參數,int  pageIndex,int pageSize分別是第幾頁,每頁顯示的數據數目。

呵呵,是不是很簡單,本人可是研究了好長時間,對於一個初學者,是很難的樣子。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章