連載:Visual Studio 2005でいってみようDBプログラミング第4回 テンプレート機能でGridViewコントロールも自由自在山田 祥寛(http://www.wings.msn.to/)2006/05/31 |
|
前回のサンプルでは、GridViewコントロールのImageField/HyperLinkFieldなどのフィールド列を利用して、データベースから取り出した値を基に画像列やハイパーリンク列を生成してみました。これらXxxxxFieldフィールドを利用するだけでも、自在にカスタマイズを施せるのがGridViewコントロールのうれしいところです。
本稿ではさらに踏み込んで、前回扱わなかったTemplateFieldフィールドを利用してみたいと思います。TemplateFieldフィールドを利用することで、GridViewコントロール上のカラムを自在にカスタマイズすることが可能になります。
今回作成するサンプル・プログラムのダウンロード(vs2005db_04.zip)
グリッド上の入力コントロールをカスタマイズしよう
GridViewコントロールでデフォルトの編集機能を利用する場合、各カラムの値はTextBoxコントロールの値として表示されます。例えば、以下のようにです。
図1 GridViewコントロールの標準の編集モード |
しかし、標準で用意されたTextBoxコントロールは、多くの場合、データの内容に比べて「幅が狭い(あるいは広い)」ためデータを入力しにくい、グリッド表全体の幅が必要以上に広くなってしまうといった問題があります。また、本サンプル・プログラムの「出版社」列のように、特定の選択肢のみから値を選択させたいような場合には、そもそもTextBoxコントロールではなくDropDownListコントロールを使用したい、というケースもあるでしょう。
はたまた、エンドユーザーからの入力値に基づいてデータの登録や更新を行う場合、入力値の正否を検証する機能は欠かせません。さらには削除時に確認ダイアログを表示したいという要望もあるかもしれません。このような場合にも、TemplateFieldフィールドを利用することで、カラムの内容/機能やレイアウトを自在に変更することが可能になります。
本節では、TemplateFieldフィールドを利用して前回のサンプル・プログラムを改変し、より使いやすい入力フォームを作成してみましょう。
図2 TemplateFieldフィールドによってカスタマイズされた編集列 | ||||||
TemplateFieldフィールドを利用することで、新たに検証コントロールを配置したり、入力コントロールをTextBox以外のものに置き換えたりできる。
|
本節で変更する内容は、以下のとおりです。
- 「単価」列/「刊行日」列のテキストボックス幅を調整する
- 「出版社」列の入力要素をTextBoxからDropDownListに置き換える
- 以下の入力チェック機能を実装する
- 「単価」列が入力されているか(必須検証)
- 「単価」列の値が整数値で、かつ、0〜100000の範囲に収まっているか(範囲検証)
- 「刊行日」列の値が日付データであるか(データ型検証)
- 削除時に処理確認のダイアログ・ボックスを表示する
なお、本節のコードを動作させるには、あらかじめ以下の表のような「publishテーブル」を作成しておく必要があります。新規にテーブルを作成する方法については、第2回の内容を参照してください。また、以降の作業を行うに先立って、既存のbooksテーブルに対応するように出版社情報を入力しておいてください。
|
||||||||||||
表1 publishテーブルの構造 | ||||||||||||
INDEX | ||
Visual Studio 2005でいってみようDBプログラミング | ||
第4回 テンプレート機能でGridViewコントロールも自由自在 | ||
1.グリッド上の入力コントロールをカスタマイズしよう | ||
2.TemplateFieldフィールドを適用する | ||
3.TemplateFieldフィールド適用のポイントを理解する | ||
「Visual Studio 2005でいってみようDBプログラミング」 |
- 第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用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|