開始的時候呢,我是運用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分別是第幾頁,每頁顯示的數據數目。
呵呵,是不是很簡單,本人可是研究了好長時間,對於一個初學者,是很難的樣子。