ObjectDataSourceを使って、GridViewにページングを実装

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

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。