C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 76 を表示中)
■44597 / )  TemplateFieldの特定単語を強調表示したい
□投稿者/ サトシ (42回)-(2009/12/13(Sun) 16:06:06)

分類:[ASP.NET (VB)] 

いつもお世話になってます。
以前、TemplateFieldの特定の単語を強調表示したい件でお世話になった
http://bbs.wankuma.com/index.cgi?mode=all&namber=44353
の続きの質問です。

GridViewのTemplateFieldの特定の単語を強調表示するのに、多数のTemplateField列へ
対応するコードの書き方がわからなくて困っております。
以下の様なテストDBを作りました。
|ID|名前Template|年齢Template|子供名Template|
| 1|鈴木一郎  |35     |太郎     |
| 2|鈴木次郎  |55     |一郎     |
| 3|田中一郎  |43     |花子     |
| 4|田中三郎  |37     |一郎     |

複数のTemplateFieldがあり、GridViewではItemTemplateはLabel1, Label2, Label3で情報
が表示されています。
このデータをGridViewで表示し、中の「一郎」だけを強調表示する以下のコードを書きました。
Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs)
    If e.Row.RowType = DataControlRowType.DataRow Then
        If e.Row.RowIndex = Me.GridView1.EditIndex Then Return
        For i As Integer = 1 To e.Row.Cells.Count - 1
            Dim dumLabel As Label = e.Row.FindControl("Label" & Asc(i))
            dumLabel.Text = dumLabel.Text.Replace("一郎", "<B Style='background-color:#fff495'>一郎</B>")
        Next
    End If
End Sub

しかし、
dumLabel.Text = dumLabel.Text.Replace("一郎", "<B Style='background-color:#fff495'>一郎</B>")
の行で、「NullReferenceExceptionはユーザーコードによってハンドルされませんでした。
オブジェクト参照がオブジェクト インスタンスに設定されていません。」
のエラーが発生し動きません。
どのあたりに原因があり、解決はどの様に考えればよいでしょうか?よろしくお願いします。

VWD2008, MS Access2003です。

返信 編集キー/


管理者用

- Child Tree -