ObjectDataSourceを使って、GridViewにページングを実装する方法。
今日、はまったのでまとめておきます。

1.GridViewとObjectDataSourceを配置する。

ドラッグアンドドロップで、普通に配置します。

2.DACでデータとデータ件数を取得するメソッドを実装する。

例としてProductRepository.csを実装します。

[sourcecode language=”csharp”]
public int CountProducts () {…}

//offset:テーブル内のデータの取得位置
//limit:1ページあたりのデータ件数
public List<Product> LoadAllProducts (int offset, int limit) {…}
[/sourcecode]

3.ObjectDataSource(以降、ODS)を編集する

ObjectDataSource(以降、ODS)の設定を行います。
データソースの構成で、ビジネスオブジェクトには「ProductRepository」を選び、
データメソッドのSELECTには「LoadAllProducts」を選びます。
パラメタの設定は行いません。

続いて、GUIのプロパティにてページングのための情報を記述します。

aspxのソース表示ではこのようになります。
[sourcecode language=”csharp”]
<asp:ObjectDataSource
ID="ProductObjectDataSource"
runat="server"
EnablePaging="True"
SelectCountMethod="Count"
SelectMethod="LoadAllProduct"
TypeName="ProductRepository"
MaximumRowsParameterName="limit"
StartRowIndexParameterName="offset"
</asp:ObjectDataSource>
[/sourcecode]

このように設定すると、ODSがlimitの値とoffsetの値をLoadAllProductsに渡してくれます。

4.GridViewのデータソースに前述のODSを選ぶ

データソースの選択で、上述のODSを選びます。

5.GridViewを編集する。

AllowPageをTrueにしたり、PageSizeを変更したりします。

これでOK!!
F5で実行すると、ページングが実装されています。

6.おわりに

最後のGridViewのPageSizeがどうやってODSに伝わるのでしょうか?
内部的な処理でしょうけど、ちょっと気になります。

以下のサイトを参考にしました。
Implement Paging using ObjectDataSource with GridView