GridViewコントロールは、ASP.NETが提供するサーバ・コントロールの中でも最も使いでがあり、(恐らく)頻繁に利用されるコントロールの1つだろう。GridViewコントロールを利用することで、データベースなどのデータソースからグリッド表を生成することができる。ASP.NET 1.0/1.1でもDataGridコントロールと呼ばれる、やはりグリッド表を生成するためのサーバ・コントロールが提供されていたが、GridViewコントロールはその後継であると考えてもよいかもしれない。
GridViewコントロールの特徴は、以下のとおりだ。
- データソース・コントロールとの連携に対応
- ページング/ソート処理を属性の指定だけで実現できる
- チェック・ボックスやハイパーリンク、画像などを利用したカラムを生成できる
従来のDataGridコントロールでは、データベース上のデータをグリッド表に整形するにも定型的なコーディングを必要としたが、GridViewコントロールではこれらの特徴によって、定型的な処理の大部分をコーディングレスで実現できるようになっている。
ASP.NET 2.0以降でも、従来のDataGridコントロールを利用することは可能であるが、こちらはあくまでASP.NET 1.xとの下位互換性を保つために残されたコントロールであると考えるべきだ。特別な理由がない限り、ASP.NET 2.0以降の環境ではGridViewコントロールを利用されたい*1。
*1 このため、Visual Studio 2005以降のツールボックスでは、DataGridコントロールはデフォルトで非表示となっている。
●データソース・コントロールの基本
GridViewコントロールに代表されるデータアクセス・コントロール*2を理解するには、データソース・コントロールについての理解は欠かせない。データソース・コントロールとは、名前のとおり、データベースやXMLデータのようなデータソースへのアクセスを制御するためのサーバ・コントロールのこと。
*2 データアクセス・コントロールには、GridViewコントロールのほか、DetailsView、FormView、ListViewのようなコントロールが用意されている。これらについても、後日別稿で解説の予定である。
かつてASP.NET 1.xでは、データベースから取得した結果セットをグリッド表示するにも、データベースへの接続からデータの取得、データのバインド(流し込み)といった操作はプログラム上で記述する必要があった。
しかしASP.NET 2.0以降では、データソース・コントロールを介することで、これらを宣言的に記述することができる。具体的には、データベースへの接続情報や発行するコマンド、コマンドの実行に必要なパラメータまでをすべてプロパティ値として指定できるので、殊更にデータベース連携のコードを記述する必要がなくなるというわけだ。
ASP.NET 3.5で提供されているデータソース・コントロールは、以下のとおり。
コントロール | 概要 |
---|---|
AccessDataSource | Microsoft Access用のデータソース |
LinqDataSource | LINQ(Language Integrated Query)対応のデータソース |
ObjectDataSource | ビジネス・オブジェクトを表すデータソース |
SiteMapDataSource | サイト・マップ用のデータソース |
SqlDataSource | ADO.NET対応データベース用のデータソース |
XmlDataSource | XMLファイル用のデータソース |
ASP.NET 3.5で利用可能なデータソース・コントロール |
データソースの種類に応じて、それぞれ専用のデータソース・コントロールが用意されているわけだ(例えばSQL Serverなどのデータベースに接続するならばSqlDataSourceを使用する)。これによって、接続先のデータソースが変更になっても、データアクセス・コントロールへの影響は最小限に、データソース・コントロールを差し替えることで、新たなデータソースに対応することができる。データソース・コントロールとは、データアクセス・コントロールとデータソースとの橋渡し的な役割を担うものと考えていただいてもよいだろう。
●GridViewコントロールの基本
前置きがやや長くなってしまったが、以下では具体的にGridViewコントロールとSqlDataSourceコントロールを利用して、基本的なグリッド表を作成してみよう。
なお、本サンプルを動作させるには、あらかじめグリッド(GridViewコントロール)に表示すべきデータソースとして、データベース上に以下のようなBookテーブルを用意しておく必要がある。
フィールド名 | データ型 | 概要 |
---|---|---|
isbn | CHAR(17) | ISBNコード(主キー) |
title | VARCHAR(100) | 書名 |
price | SMALLINT | 価格 |
publish | VARCHAR(25) | 出版社名 |
published | DATETIME | 刊行日 |
Bookテーブルのフィールド・レイアウト |
また、Bookテーブルには、グリッド表に表示できるように適当なデータを何件か登録しておこう。
1. 新規のWebフォームを作成する
新規のWebフォーム(Basic.aspx)を作成したら、フォーム・デザイナから以下の画面の要領でGridViewコントロールを配置する。
GridViewコントロールの右肩に[GridViewタスク]メニューが表示されるので、ここから[データソースの選択]−[<新しいデータソース>]を選択する(タスク・メニューが表示されない場合には、GridViewコントロール右肩の[▲]をクリックすればよい)。
2. 接続先のデータベースを設定する
以下の画面のようなデータ構成ウィザードが表示されるので、ここからはウィザードに沿ってデータソースへのアクセスに必要な情報を設定していこう。
データの取得先によって使用すべきデータソースは異なるが、SQL Serverのようなデータベースにアクセスする場合には「データベース」を選択すればよい。この場合、データソース・コントロールとしてSqlDataSourceコントロールが選択される。また、データソース・コントロールのID値として、今回は「sds」と指定しておく。
Copyright© Digital Advantage Corp. All Rights Reserved.