|
.NET TIPS [ASP.NET]DataGridコントロールの列を実行時に表示/非表示するには?デジタルアドバンテージ2003/11/14 |
![]() |
|
|
|
DataGridコントロールの列は、その定義時にVisible属性により表示/非表示を切り替えることができる。この属性は、実行時にはDataGridオブジェクトのVisibleプロパティとして読み書きでき、これを利用することにより実行時に動的に列の表示/非表示を切り替えることができる。
ここではこのVisibleプロパティを利用して、次の画面で示すようなプログラムを作成してみる。このプログラムでは、グリッドのヘッダーに表示されている列名をクリックすることにより、その列を隠すことができる。また、[すべての列を表示]ボタンをクリックすれば、グリッドのすべての列が表示される。この場合には起動時に非表示だった「日付」列も表示するようにしている。
![]() |
| サンプル・プログラム(hidecolumn.aspx)の起動時の画面 |
![]()
![]() |
| ヘッダーの[タイトル]をクリックしたときの画面 |
| 「タイトル」列が非表示になる。ページの移動を行っても列は非表示のままとなる。 |
![]()
![]() |
| [すべての列を表示]ボタンをクリックしたときの画面 |
| 「日付」列は起動時には表示されないが、[すべての列を表示]ボタンがクリックされたときにのみ表示される。 |
ヘッダーのクリックによる列の非表示
ヘッダーに表示されている列名をリンクボタンとして機能させるために、ここでは「TIPS:[ASP.NET]DataGridコントロールにソート機能を追加するには?」で解説しているソート機能を流用している。ソート機能といっても、DataGridコントロールが提供する機能は、SortExpression属性が設定された列の列名部分をリンクボタンにして、SortCommandイベントを発生するだけである。本来SortCommandイベントのイベント・ハンドラではクリックされた列によりデータソースの並べ替えを行うが、ここではその代わりに列を非表示にしている。
クリックされた列を非表示にするSortCommandイベントのイベント・ハンドラは次のように記述できる。
void MyGrid_Sort(object s, DataGridSortCommandEventArgs e) {
foreach (DataGridColumn column in MyGrid.Columns) {
if (column.SortExpression == e.SortExpression) {
column.Visible = false;
}
}
}
このメソッドでは、クリックされた列のSortExpression属性の値をe.SortExpressionとして取得できる。この値をグリッド内のすべての列のSortExpressionプロパティと順に比較することにより、クリックされた列を特定できる。
すべての列の表示
[すべての列を表示]ボタンがクリックされたときの処理は、グリッドのすべての列のVisibleプロパティをtrueに設定するだけだ。このボタンのイベント・ハンドラは次のようになる。
void MyButton_Click(object s, CommandEventArgs e) {
foreach (DataGridColumn column in MyGrid.Columns) {
column.Visible = true;
}
}
列を表示/非表示するサンプル・プログラム
今回示したサンプル・プログラムのソース・コードは次のようになっている。これは「TIPS:[ASP.NET]DataGridコントロールでページ表示するには?」で示しているサンプル・プログラムにコードを追加して作成したものだ。追加した部分は太字で示している。
|
|
| 列を表示/非表示するC#のサンプル・プログラム(hidecolumn.aspx) | |
「日付」列を定義している最後の<asp:BoundColumn>タグにはVisible="false"属性を記述しているため、プログラムの起動時には画面上に表示されない。![]()
| カテゴリ:Webフォーム 処理対象:DataGridコントロール 使用ライブラリ:DataGridコントロール 関連TIPS:[ASP.NET]DataGridコントロールにソート機能を追加するには? 関連TIPS:[ASP.NET]DataGridコントロールでページ表示するには? |
| 「.NET TIPS」 |
TechTargetジャパン
- 新人プログラマーのためのInsider.NETの歩き方 2012 (2012/5/22)
晴れて.NETプログラマーとなる新人が効率的に開発技術を習得するには? 大量にある記事群の中から新人が読むべきお勧めを厳選して紹介 - jQuery MobileでJavaScriptプログラミング (2012/5/17)
jQuery Mobileは手軽なだけでなく、JavaScriptのAPIも充実しており、独自機能の実装もできる。今回は「グローバル設定」と「イベント」を解説 - Windows上で開発するための開発環境構築入門 (2012/5/16)
Windowsを使ってチームで開発している? なのにサーバOSを設定・運用した経験がない? そうなら、今すぐ学ぼう - 「コントラクト」でアプリのサンドボックスを乗り越える! (2012/5/11)
Metroスタイル・アプリはサンドボックスの中で動作する。それを乗り越えてほかのアプリと連携する仕組み「コントラクト」を解説
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -





