.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」 |
- 第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用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
![]() |
|
|
|
![]() |