.NET Framework 3.5 ListView + DataPager によるページング

今月の MSDN マガジン すてきな ASP.NET は、ASP.NET 開発をやるなら必読!

以前のデータバインドコントロールは表示のカスタマイズがしにくかったりが、今度こそ望みの形が得られる可能性が高くなった。

  • ページング指示をするためのコントロール DataPager は後付け可能で、複数置くことも可能
  • LayoutTemplate があり全体の描画を自由に行える

ただ、見たところDataSoruceに対して全データを取りに行こうとする挙動は相変わらずのようだ。そうしたくなければカスタムデータソースで何とかせい、と言っている。

この仕組みで SQL-IIS 間で流れるデータ量を減らそうと思ったら

  • DataPager は DataSource にちょっかいを出す
  • 並べ替えは ListView にちょっかいを出す

というように作らないとだめそう。負荷分散的には、並べ替えはSQLServer側よりもIIS側でやる方が多分いい。

(3/26 追記)ソート順およびページングのための情報は DataSourceView の Select の呼び出し時点で引き渡される。カスタムDataSource実装上は ExecuteSelect のところで arguments の中身を見ながら検索することになる。

で、一通り読んだら自分で実装できそうな気がしてきた、というか現在のプロジェクトだと特定の型付DataSetを受け取るような ListView としてデータソース毎に個別に再実装しないといかん。再実装するにあたっては、IPageableItemContainer インターフェースとそれにまつわる内部動作の話が最も重要。

広告

コメントを残す

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

WordPress.com ロゴ

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

Twitter 画像

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

Facebook の写真

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

Google+ フォト

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

%s と連携中

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