Adding Paging Support to the Repeater or DataList with the PagedDataSource Class
http://aspnet.4guysfromrolla.com/articles/081804-1.aspx
DataGridコントロールはデフォルトでページングの機能を持っていますが、レイアウト上の制約は大きい。
一方、Repeaterコントロールはレイアウトは比較的自由になりますが、ページングが面倒。
RepeaterコントロールとPagedDataSourceクラスとを組み合わせることによって、レイアウトも自由になり、かつページングの処理の面倒くささもなくなります。
DataSet, DataRepeaterなどのデータソースをPagedDataSourceに関連付けて、そのPagedDataSourceにRepeaterをバインドすれば、それだけでページングの機能が付加されます(もちろんページングのサイズ等プロパティの設定は必要です)。
CurrentPageIndex, IsFirstPage, IsLastPage, PageCountなどのプロパティを利用すれば、バインドするコントロールのOnRenderメソッドでかなり自由に遷移先の選択ができます。例えば、先頭ページの時には [前へ] リンクを表示しないとか、現在ページの前後5ページだけリンクを出すとか・・・などが簡単にできます。