0

Web ページに検索結果を表示するようにグリッドビューを設定しました。

検索用語のインスタンスをその単語の太字バージョンに置き換える「想定」されているコードを以下に示します。

さまざまなバージョンを試しましたが、何も機能しません。

    Private Sub gvSearchResults_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gvSearchResults.RowDataBound
    If e.Row.RowType = DataControlRowType.DataRow Then
        For Each cell As TableCell In e.Row.Cells
            If cell.Text.Contains(searchTerm) Then
                cell.Text = cell.Text.Replace(Session("SearchTerm"), "<span style='font-weight: bold;'>" & Session("SearchTerm") & "</span>")
            End If
        Next
    End If
End Sub

私のロジックに欠けているものはありますか?

ありがとう!

4

2 に答える 2

1

コードに疑わしいsearchTerm変数があります。

コードでsearchTerm変数 Session("SearchTerm")を使用していることに注意してください。

代わりにこれを行います:

searchTerm = Session("SearchTerm")

If cell.Text.Contains(searchTerm) Then
     cell.Text = cell.Text.Replace(searchTerm , "<span style='font-weight: bold;'>" & searchTerm  & "</span>")
End If
于 2012-05-24T18:15:01.640 に答える
1

が空白の場合Cell.Text、グリッドビューがリテラル コントロールをCell.Controlsコレクションに配置している可能性があります。次のようなものを入れる必要があります。

If e.Row.RowType = DataControlRowType.DataRow Then
    For Each cell As TableCell In e.Row.Cells
        If cell.Controls.Count > 0 Then
            Dim ltl as Literal = CType(cell.Controls(0), Literal)
            If ltl.Text.Contains(searchTerm) Then
                cell.Text = cell.Text.Replace(Session("SearchTerm"), "<span style='font-weight: bold;'>" & Session("SearchTerm") & "</span>")
            End If
        End If
    Next
End If
于 2012-05-24T19:01:52.277 に答える