|
前回はデータ連結コントロールの基礎と題して,SQL Server2005にデータベースを作成する方法から解説をはじめ,比較的単純なリスト系のデータ連結コントロールを利用しました。Visual Studio 2008ではサーバー・データベースと,ローカル・データベースの2種類を作成することができるのでしたね。今後はデータベースの移動やコピーが簡単なローカル・データベースを使っていくことにします。
前回の最後にデータソースコントロールの種類と,表形式や階層形式のデータ連結コントロールを紹介しました。今回は,データベースのテーブルを扱うのに適した表形式のデータ連結コントロールを解説していきます。
表形式のデータ連結コントロール
表の形でデータを表現するデータ連結コントロールには,GridViewやテンプレートを使って表示をコントロールするRepeaterやDataListがあります(図1)。
-
GridView
- GridViewはデータベースの複数レコードを表示する
- レコードを選択,並べ替え,ページング,そして編集することができる
- GridViewはデータをHTMLテーブルとして表現し,レコードを行として描画する
- ブール型だけはチェックボックスとして表現する。その他は単純にフィールドの内容を表示する
- DataBind()メソッドを使ってプログラムによるデータバインディングができる
- 単一ページで,マスタ/詳細フォームを作成するときに便利に使える
- GridViewではレコードの追加はできない
-
RepeaterとDataList
- RepeaterとDataListは複数レコードを表示する
- Repeaterはテンプレートを使用する
- DataListもテンプレートを使用するが,HTMLテーブル形式で表現する
- DataListはGridViewと違い,複数レコードを1行に表示できる
- RepeaterとDataListではイベントの種類が違う
- レコードを更新するときには,GridViewよりもコードをたくさん書かなくてはならない
-
DetailsViewとFormView
- DetailsViewとFormViewは1レコードを表示する
- データベースのレコードを表示,編集,追加,削除できる
- DetailsViewは各々のフィールドをHTMLテーブルの行として扱う
- DetailsViewはGridViewと同じフィールドをサポートしている
- FormViewはテンプレートを使って,1レコードを柔軟に表示する
- FormViewはValidationコントロールが容易に追加できるのでDetailsViewよりも使い勝手が良い
-
ListViewとDataPager
- ListViewとDataPagerは.NET3.5で追加になったデータ連結コントロールである
- ListViewはGridView,DataList,FormView,Repeaterコントロールの代わりになる
- DataPagerはListViewコントロールにページングの機能を追加する
- ListViewはテンプレートを使う
- ListViewはGridViewの機能に加えて,レコードの追加が可能である
- ListViewはDataListのように,複数レコードを1行に表示できる
これらのコントロールはデータベースの複数レコードを取り扱うのに適しています。DetailsViewとFormViewは1レコードを扱います。DetailsViewの機能は単一レコード版のGridViewと言ってもよいほどにGridViewに似ています。
ListViewは.NET3.5で追加になったコントロールです。従来のデータ連結コントロールのいいとこどりであり,あったらよかったのにという機能を追加しています。GridViewに足りなかったレコードの追加機能をテンプレートで実現しています。ListViewは複数レコードを1行に表示できるので,DataListの新バージョンと考えることもできますし,GridViewのレイアウト機能を拡張したコントロールとも考えることができます。ListView はDataPagerコントロールを使ってページの切り替えをします。
では,具体的にみていきましょう。