ObjectDataSourceを使って、GridViewにページングを実装
2011年2月9日 コメントを残す
ObjectDataSourceを使って、GridViewにページングを実装する方法。
今日、はまったのでまとめておきます。
1.GridViewとObjectDataSourceを配置する。
ドラッグアンドドロップで、普通に配置します。
2.DACでデータとデータ件数を取得するメソッドを実装する。
例としてProductRepository.csを実装します。
public int CountProducts () {...} //offset:テーブル内のデータの取得位置 //limit:1ページあたりのデータ件数 public List<Product> LoadAllProducts (int offset, int limit) {...}
3.ObjectDataSource(以降、ODS)を編集する
ObjectDataSource(以降、ODS)の設定を行います。
データソースの構成で、ビジネスオブジェクトには「ProductRepository」を選び、
データメソッドのSELECTには「LoadAllProducts」を選びます。
パラメタの設定は行いません。
続いて、GUIのプロパティにてページングのための情報を記述します。
aspxのソース表示ではこのようになります。
<asp:ObjectDataSource ID="ProductObjectDataSource" runat="server" EnablePaging="True" SelectCountMethod="Count" SelectMethod="LoadAllProduct" TypeName="ProductRepository" MaximumRowsParameterName="limit" StartRowIndexParameterName="offset" </asp:ObjectDataSource>
このように設定すると、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