- - PR -
GridViewでのカスタムページング
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-02-07 17:05
VS:2005
asp.net2.0 いつも参考にさせていただいております。 初めてGridViewコントロールを使用することになったのですが、 カスタムページングの部分で悩んでおります。 本システムはWebサービスを介し、データベースよりデータを取得します。 今回Webサービスからは、全体のデータ件数(100)と、 1ページ分のDataSet(15件分)が返されます。 この二つのデータを元にGridViewでカスタムページングを行いたいのですが、 ObjectDataSourceコントロールを使用するサンプルしかなく、 この方法以外ではできないのかと思案中です。 あるUIコンポーネント製品を使用すると、Gridのプロパティに全体の件数を設定でき、 Gridには取得したDataSetをバインドするだけでうまくできたりするのですが、 既存のGridViewで同様な事が可能なのでしょうか? なるべく製品は使用したくありません・・・。 もしよい方法をご存知の方がいらっしゃいましたら、 ぜひアドバイスお願いいたします。 | ||||
|
投稿日時: 2007-02-08 06:29
GridViewにカスタムページングを実装するには、
ご指摘のようにObjectDataSourceを使用することになります。 Webサービスからすべてのデータ(100件)が返されるのであれば カスタムページングは不要かと。 カスタムページングを実装するには、Webサービスから1ページ分の データ(10件)を返すような仕様にする必要があるのでは? (たとえば、引数にページ番号を渡すなど・・・) Webサービス経由で100件のデータを取得して10件単位で ページングさせるのでしたら、DataSetをキャッシングさせたら どうでしょうか。 さらに高速化するには、UpdatePanelを追加してGridViewに AJAXを適用することもできます。 ※UpdatePanelの代わりにEnableSortingAndPagingCallbacks=Trueでもよい。 _________________ ASP.NET+Ajaxサンプル集 | JavaScript+Ajaxサンプル集 | ||||
|
投稿日時: 2007-02-08 13:15
Accessさん、ご返答ありがとうございます!
私の書き方が悪かったようですいません。 100件返されるというのは、件数です。intです。 DataSetではありません。 DBへのアクセスは全てWebサービス側で行うので、 ObjectDataSourceを使う必要がないんですよね・・・。 となると、そもそもGridViewを使う必要性もないのかもしれません。 ページ表示が便利だなと思ったのですが、 そもそものところからもう一度考えた方がよさそうですね。 | ||||
|
投稿日時: 2007-02-09 06:05
GridViewのページャーに表示するページ番号(または移動ボタン)を自前で 用意するか、GridViewに委ねるかによると思います。 Webサービスから合計件数とカレントページに表示するデータが返るなら ObjectDataSourceが使えるのでは? ところで、今回のWebサービスはアマゾン(Amazon)のAWSと同じ仕様ですよね。 私なら、ObjectDataSourceを使用してカスタムページングを利用します。 _________________ ASP.NET+Ajaxサンプル集 | JavaScript+Ajaxサンプル集 | ||||
|
投稿日時: 2007-02-09 13:38
Accessさん、いつもありがとうございます!
>GridViewのページャーに表示するページ番号(または移動ボタン)を自前で >用意するか、GridViewに委ねるかによると思います。 そうなんです。ページ番号だけ自前でもよいかなと考えたりしました・・・。
そうなんですか! 合計件数とカレント表示用DataSetをどのようにObjectDataSourceにセットするのかが わからず悩んでおりました。(そして悩み中です) GridViewの合計件数のプロパティはGetのみだったりして。 このプロパティにセットできれば、それでOKだったんですけどね。 ObjectDataSourceについて、もう少し勉強してみます。 | ||||
|
投稿日時: 2007-02-10 10:58
Webサービスを利用する前に、GridViewとObjectDataSourceで
カスタムページングを実装するサンプルを作成してみたらどうでしょうか。 あとは、サンプルをWebサービス化するだけで可能かと。 _________________ ASP.NET+Ajaxサンプル集 | JavaScript+Ajaxサンプル集 |
1