.NET TIPS [ASP.NET]DataGridコントロールで特定のカラムのみを表示するには?デジタルアドバンテージ2003/09/19 |
|
|
「TIPS:[ASP.NET]DataGridコントロールでデータセットを表示するには?」で解説しているように、ASP.NETのDataGridコントロールを使うと、デフォルトではデータソースに指定したデータテーブル(DataTableオブジェクト)のすべてのカラムが表示されてしまう。ここではテーブル内の特定のカラムのみをDataGridコントロールで表示するための方法について解説する。
手順1:AutoGenerateColumns属性をfalseに設定
特定のカラムのみを表示するたのに必要な作業は2つある。まず、DataGridコントロールのAutoGenerateColumns属性をfalseにセットして、カラムが自動生成されないようにしておく。
<asp:DataGrid id="MyGrid" AutoGenerateColumns="false" runat="server" >
……
</asp:DataGrid>
ちなみにこの指定は、次のようにコードからDataGridコントロールのAutoGenerateColumnsプロパティにfalseを代入しても同じ意味となる。
MyGrid.AutoGenerateColumns = false;
手順2:<asp:BoundColumn>要素によるカラムの指定
次に必要な作業は、表示するカラムの指定である。これは、<asp:DataGrid>要素内に<Columns>要素を記述し、さらにその中で、表示するカラムを<asp:BoundColumn>要素により指定する。<asp:BoundColumn>要素は「連結列」と呼ばれるものだ。
ここでは「TIPS:[ASP.NET]DataGridコントロールでデータセットを表示するには?」で使用したサンプル・プログラムをベースに解説を進める。そのサンプル・プログラム(simpledg1.aspx)では、データソースとしてBuild Insiderの新着記事を記述したRSS情報を読み込んだデータテーブルを使用していた。このデータテーブルには記事タイトルを示す「title」カラムと、記事の概要を示す「encoded」カラムがある。例えばこの2つのカラムだけをDataGridコントロールのカラムとして使用する場合には、<asp:DataGrid>要素の記述は次のようになる。
<asp:DataGrid ……>
<Columns>
<asp:BoundColumn DataField="title" HeaderText="タイトル" />
<asp:BoundColumn DataField="encoded" HeaderText="概要" />
</Columns>
</asp:DataGrid>
<asp:BoundColumn>要素では、まずDataField属性によりデータソースに指定したデータテーブルの対象となるカラムの名前を指定する。これがないとそのカラムはすべて空白となってしまう。また、HeaderText属性により各カラムのヘッダー行に表示されるテキストを任意に設定できる。
特定のカラムのみを表示するサンプル・プログラム
以上の修正を加えたサンプル・プログラムは次のようになる。Page_Loadメソッドには手を加えていない。
|
|
特定のカラムのみを表示するC#のサンプル・プログラム(bounddg1.aspx) | |
このサンプル・プログラムの実行結果は次のようになる。
サンプル・プログラム(bounddg1.aspx)の実行結果 |
グリッドのデザイン
上記のサンプル・プログラムは何の装飾も行っていないので、表示された表は見やすいとはいい難い。背景色を設定するなどして、次の画面のような表にしてみよう。
デザインを施したサンプル・プログラム(bounddg2.aspx)の実行結果 |
上記の画面で設定しているデザイン項目は、最低限必要と思われる次の4点だ。
- 表示テキストとセルの境界との間隔(CellPadding属性)
- ヘッダー行の背景色と文字色(<HeaderStyle>要素のBackColor属性とForeColor属性)
- 各行の背景色(<ItemStyle>要素のBackColor属性)
- 偶数行の背景色(<AlternatingItemStyle>要素のBackColor属性)
それぞれの記述方法については以下のソース・コードをご覧いただきたい。1行おきのスタイル設定ができる<AlternatingItemStyle>要素は非常に便利な仕組みである。
|
|
デザインを施したサンプル・プログラム(bounddg2.aspx) | |
いうまでもないだろうが、Visual Studio .NETの「プロパティ・ビルダ」を使用すれば、GUIでDataGridコントロールの表示状態を確認しながら種々のプロパティを設定可能だ。また「自動フォーマット」としていくつかのデザインのパターンも用意されている。
カテゴリ:Webフォーム 処理対象:DataGridコントロール 使用ライブラリ:DataGridコントロール(System.Web.UI.WebControls名前空間) 使用ライブラリ:BoundColumnクラス(System.Web.UI.WebControls名前空間) 関連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用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|