0

我设置了一个网格视图来在网页上显示搜索结果。

我有下面的代码“应该”用该词的粗体版本替换搜索词的任何实例。

我尝试了许多不同的版本,但没有任何效果。

    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

如果为空白,则可能是 gridview 在集合Cell.Text中放置了 Literal 控件。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 回答