分頁與排序是數據顯示的常見需求。以線上書店搜尋 ASP.NET 書籍為例,結果可能成百上千筆,但每頁僅列出 10 筆,且需支援依書名、價格、頁數、作者等欄位排序。在 分頁與排序報表數據 中已說明,GridView、DetailsView、FormView 皆具內建分頁功能,勾選核取方塊即可啟用;GridView 更支援內建排序。
不幸的是,DataList 與 Repeater 均無內建分頁與排序功能。本章將學習如何為這兩個控制項添加分頁與排序支援。我們需建立分頁介面、顯示正確頁面記錄、於回傳過程中記錄瀏覽頁碼。雖然較 GridView 等控制項需撰寫更多程式碼、耗費更多時間,但也提供了更高的擴充彈性。
注意: 本章專注於分頁實作,下一章將探討排序功能。
首先建立本章與下一章所需頁面。新增名為 PagingSortingDataListRepeater 的資料夾,並在其中建立以下 5 個頁面,皆選擇 Site.master 作為母版頁:

圖 1:建立教程頁面
接著開啟 Default.aspx,從 UserControls 資料夾拖曳 SectionLevelTutorialListing.ascx 使用者控制項至設計介面。此控制項我們已多次使用,詳見 母版頁與站點導航 教程。

圖 2:新增使用者控制項