.NET TIPS [ASP.NET]DataGridコントロールの列に複数の項目を表示するには?デジタルアドバンテージ2003/11/21 |
|
|
DataGridコントロールでは、連結列で記述された列には1つの項目しか表示できないが、テンプレート列を用いることにより、複数の項目を1つの列内に表示することができる。
次の画面は、今回作成するサンプル・プログラムの実行画面である。このサンプル・プログラムでは、1つの列に2つの項目(「概要」と「URL」)を罫線で区切って表示している。
1つの列に複数の項目を表示するサンプル・プログラム(multirow.aspx)の実行画面 |
このサンプル・プログラムは「TIPS:[ASP.NET]DataGridコントロールで特定のカラムのみを表示するには?」の示したサンプル・プログラム(bounddg2.aspx)の一部を書き換えたものだ。元のプログラムでは、例えば次のような連結列の記述により列を定義していた。
<asp:BoundColumn DataField="encoded" HeaderText="概要" />
この列ではデータソースのencodedフィールドのデータを項目として表示するが、ここで指定可能なDataField属性は1つのみだ。
同じ列にlinkフィールドのデータも表示したい場合には、次のようにテンプレート列を使用する。
<asp:TemplateColumn HeaderText="概要<hr>URL">
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem, "encoded") %>
<hr>
<%# DataBinder.Eval(Container.DataItem, "link") %>
</ItemTemplate>
</asp:TemplateColumn>
テンプレート列の基本的な記述方法については「TIPS:[ASP.NET]DataGridコントロールの行に通し番号を付けるには?」で解説している。ここでは、1つの<ItemTemplate>要素に2つのデータ連結式を埋め込み、それらを罫線表示のための<hr>タグで区切っているところがポイントだ。また、列名表示に使用されるHeaderText属性の値にも<hr>タグを埋め込んで、ヘッダー行も同じように複数行表示にしている。
サンプル・プログラムのソース・コードを次に示しておく。
|
|
1つの列に複数の項目を表示するC#のサンプル・プログラム(multirow.aspx) | |
なお、罫線ではなく単に改行のみがよいのなら<hr>を<br>に書き換えればよい。
カテゴリ:Webフォーム 処理対象:DataGridコントロール 使用ライブラリ:DataGridコントロール 使用ライブラリ:<asp:TemplateColumn>要素 関連TIPS:[ASP.NET]DataGridコントロールで特定のカラムのみを表示するには? 関連TIPS:[ASP.NET]DataGridコントロールの行に通し番号を付けるには? |
「.NET TIPS」 |
- 第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用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|