gridview不突出显示搜索词

时间:2012-05-24 18:05:11

标签: asp.net vb.net

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

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

我尝试了很多不同的版本,但没有任何工作。

    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

我的逻辑中是否有任何遗漏?

谢谢!

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

如果Cell.Text为空,那么gridview可能会在Cell.Controls集合中放置一个Literal控件。你应该把这样的东西放在:

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