|
.NET TIPS [ASP.NET]DataGridコントロールで特定の行や文字を強調するには?デジタルアドバンテージ2003/11/21 |
![]() |
|
|
|
DataGridコントロールでデータの一覧を表示するとき、特定のデータを含んだ行や特定の文字列を強調表示したい場合がある。
例えば次のサンプル・プログラムの実行画面では、「タイトル」列の項目に「.NET TIPS」が含まれる行については行の背景色をピンク色にし、さらにグリッド内のすべてのセルについて「.NET」という文字列の背景色を黄色にして強調表示している。
![]() |
| 特定の行と文字を強調するサンプル・プログラム(highlightdg.aspx) |
| このプログラムでは「タイトル」列の項目に「.NET TIPS」という文字列が含まれている場合にはその行の背景色をピンク色にし、すべての「.NET」という文字列の背景色を黄色にして強調表示している。 |
このようなグリッドの内容に従った行やテキストの修正は、データ連結後にのみ可能だ。ここではItemDataBoundイベントを利用して、各行がデータ連結されるときに、その行に含まれている文字列を調べて行のプロパティを変更したり、文字列を置き換えたりしている。ItemDataBoundイベントの処理については「[ASP.NET]DataGridコントロールですべての行にアクセスするには?」や「[ASP.NET]DataGridコントロールでマウスのある行を強調表示するには?」で解説しているので、そちらを参考にしていただきたい。
プログラムのソース・コードは次のようになっている。なお、このプログラムは、「TIPS:[ASP.NET]DataGridコントロールで特定のカラムのみを表示するには?」で示したサンプル・プログラム(bounddg2.aspx)をベースにしている。
|
|
| 特定の行と文字を強調するC#のサンプル・プログラム(highlightdg.aspx) | |
ItemDataBoundイベントのイベント・ハンドラであるMyGrid_ItemBoundメソッドでは、まず「.NET TIPS」という文字列が第1列に含まれている場合に、行(ここではe.Item)のBackColorプロパティにより背景色を変更する。
if (e.Item.Cells[0].Text.IndexOf(".NET TIPS") != -1) {
e.Item.BackColor = System.Drawing.Color.Pink;
}
Stringクラス(System名前空間)のIndexOfメソッドは、パラメータで指定した文字列の、そのインスタンス(ここではセルのTextプロパティ)内での位置を取得するためのものだ。このメソッドは、文字列が含まれていない場合には-1を返す。
また、「.NET」という文字列の背景色の変更は次のようにして行っている。
foreach (TableCell cell in e.Item.Cells) {
cell.Text = cell.Text.Replace(".NET",
"<B Style='background-color:yellow'>.NET</B>");
}
これは、行に含まれているすべてのセルに対して、そのTextプロパティの「.NET」という文字列を次のような文字列に置き換える。
<B Style='background-color:yellow'>.NET</B>
StringクラスのReplaceメソッドでは、文字列内の一部を別の文字列に置き換えることができる。このメソッドは、そのインスタンス(ここではcell.Text)に第1パラメータで指定した文字列が含まれている場合には、それを第2パラメータで指定した文字列に置き換えた文字列を返す。![]()
| カテゴリ:Webフォーム 処理対象:DataGridコントロール 使用ライブラリ:DataGridコントロール 関連TIPS:[ASP.NET]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 -



