解説

実例で学ぶASP.NETプログラミング

第7回 一覧ページを作る―DataGridコントロールに対するコーディング―

小田原 貴樹(うりゅう)
2003/06/24

DataGridコントロールにページング機能を実装する

 先ほども書いたが、ページングとは要するに「ある一定の件数ごとに一覧表をページ分割し、そのページ間を移動するためのユーザー・インターフェイスを提供すること」である。ローカルのシステムに比べ、操作性・データ転送速度ともに劣っているWebシステムで一覧表ページを提供するならば、どうしても必要になる機能だ。だが、ASPやその他の言語でページング機能を作ったことがある方にはお分かりだろうが、これを作るのはとにかく面倒くさい。移動のためのユーザー・インターフェイスは必要だし、ページの遷移は起こるし、例外も出やすい。筆者もASP.NETで開発するようになるまでは「できるなら作りたくない機能」ベスト5には入っていたと思う(笑)。

 しかし、DataGridコントロールのページング機能に関してはそんな心配はまったくない。百聞は一見にしかずということで、早速実装してみよう。まずはDataGridコントロールのプロパティ・ビルダを使った設定が必要なので、以下の手順を参考にしてほしい。

ページングのために必要なプロパティ設定:手順1
DataGridコントロールのプロパティ・ビルダを表示し、
  [ページング]タブを選択する。
  その中の[ページングを許可]チェックボタンにチェックを入れる。それ以下の[ページの移動]等の細かい設定は画面を参照してほしい。自分の好みで設定するのもいいだろう。
  設定が終わったら[適用]ボタンをクリックする。

ページングのために必要なプロパティ設定:手順2
ページング機能の操作インターフェイスの事を「ページャ」と呼ばれる。レイアウトの変更を行いたい場合には、
  [書式]タブ内のオブジェクト[ページャ]選択する。
  [表示]では前景色を「#C00000」に設定し、フォント・サイズを「12px」に設定している。
  設定が終わったら[適用]ボタンをクリックする。

ページングのために必要なプロパティ設定:手順3
ページング機能に必要な設定をしたあとのデザイナ画面。「ページャ」が書式に合わせて表示されている。

 これでDataGridコントロールにページングのためのインターフェイスが配置された。あとは実際の処理を行うためのコーディングを行えばよい。DataGridコントロールでページング機能を実装するコードは以下のようになる。

1: Private Sub PGRID_PageIndexChanged(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridPageChangedEventArgs) Handles PGRID.PageIndexChanged
2:   PGRID.CurrentPageIndex = e.NewPageIndex
3:   CNTL.Text = GVIEW()
4: End Sub
DataGridコントロールでのページング機能実装のためのコード(イベント:DataGrid.PageIndexChanged)

 実際に追加するコードはわずか2行だ。ページングの機能を実装するコーディング作業が「2行」で済んでしまう! 本当にDataGridコントロールの機能性の高さには驚かされることが多い。このイベントは、DataGridコントロールのメンバなので、コーディング時には、コード・エディタの[クラス名]コンボ・ボックスからDataGridコントロールを選択して、[メソッド名]コンボ・ボックスからイベントを選択すると楽だろう。

 で、2行目だけがページング機能に関するコードなのだが、ここでは、DataGridコントロールに対して表示するページ番号をCurrentPageIndexプロパティに格納している。表示するページ番号は、ユーザーがインターフェイスを操作して選択した結果だが、難しいことを考えなくてもイベントの引数内に、その情報が「NewPageIndex」というプロパティで格納されている。

 3行目はDataGridコントロールの内容を表示するためのコードで、Page_Loadイベント・ハンドラで記述したものをコピーすればいい。

 ページング機能の実装は、これだけの手間で出来てしまう。しかも上記のコードはほぼ決まり文句なので、そのままほかのシステムなどにも使える。思わずどこにでも実装してしまいたくなるほど簡単なので注意していただきたい(笑)。


 INDEX
  実例で学ぶASP.NETプログラミング
  第7回 一覧ページを作る―DataGridコントロールに対するコーディング―
    1.共有変数の宣言とインスタンスの作成
  2.DataGridコントロールにページング機能を実装する
    3.DataGridコントロールに列項目ごとの並べ替え機能を実装する
    4.ユーザーが選んだ商品の写真を表示する機能を実装する
    5.DataGridコントロールでトラブルを防ぐ3つの標語
 
インデックス・ページヘ  「解説 :実例で学ぶASP.NETプログラミング」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間