Asp.net 检测gridview中的重复行
在我的gridview中,我有一些重复的行,我想用红色显示这些行,如果这些行的前4列相似,那么这些行是重复的。 例如,在本图中,第二行和第三行应变为红色: 这是我的密码:Asp.net 检测gridview中的重复行,asp.net,vb.net,gridview,Asp.net,Vb.net,Gridview,在我的gridview中,我有一些重复的行,我想用红色显示这些行,如果这些行的前4列相似,那么这些行是重复的。 例如,在本图中,第二行和第三行应变为红色: 这是我的密码: Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load For i = 0 To GridView2.Rows.Count - 1 If (GridView2.Rows(i).Cells(0).T
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
For i = 0 To GridView2.Rows.Count - 1
If (GridView2.Rows(i).Cells(0).Text = GridView2.Rows(i + 1).Cells(0).Text And GridView2.Rows(i).Cells(1).Text = GridView2.Rows(i + 1).Cells(1).Text And GridView2.Rows(i).Cells(3).Text = GridView2.Rows(i + 1).Cells(3).Text And GridView2.Rows(i).Cells(4).Text = GridView2.Rows(i + 1).Cells(4).Text) Then
GridView2.Rows(i).ForeColor = System.Drawing.Color.Red
End If
Next
End Sub
然而,这段代码对我来说不起作用,请给出任何其他实现这一点的建议
谢谢你的时间 如果使用datatable填充datagridview,则可以使用defaultview 或者,您可以遍历所有datagridview项
For i = 0 To GridView2.Rows.Count - 1
For j As integer = 0 To GridView2.Rows.Count - 1
If Not i = j Then
If (GridView2.Rows(i).Cells(0).Text = GridView2.Rows(j).Cells(0).Text And GridView2.Rows(i).Cells(1).Text = GridView2.Rows(j).Cells(1).Text And GridView2.Rows(i).Cells(3).Text = GridView2.Rows(j).Cells(3).Text And GridView2.Rows(i).Cells(4).Text = GridView2.Rows(j).Cells(4).Text) Then
GridView2.Rows(i).ForeColor = System.Drawing.Color.Red
End If
End If
Next
Next
您应该在
RowDataBound
事件中编写数据格式代码,如下所示
Protected Sub GridView2_RowDataBound(ByVal sender As GridView, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView2.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
Dim idxPrev As Integer = e.Row.RowIndex - 1
If 1 <= e.Row.RowIndex Then
If e.Row.Cells(0).Text = sender.Rows(idxPrev).Cells(0).Text AndAlso
e.Row.Cells(1).Text = sender.Rows(idxPrev).Cells(1).Text AndAlso
e.Row.Cells(3).Text = sender.Rows(idxPrev).Cells(3).Text AndAlso
e.Row.Cells(4).Text = sender.Rows(idxPrev).Cells(4).Text Then
e.Row.ForeColor = Drawing.Color.Red
sender.Rows(idxPrev).ForeColor = Drawing.Color.Red
End If
End If
End If
End Sub
Protected Sub-GridView2_RowDataBound(ByVal sender作为GridView,ByVal e作为System.Web.UI.WebControls.GridViewRowEventArgs)处理GridView2.RowDataBound
如果e.Row.RowType=DataControlRowType.DataRow,则
Dim idxPrev As Integer=e.Row.RowIndex-1
如果1,为什么不在绑定到GridView2之前过滤数据源(可能是datatable/dataset)?顺便问一下,您在哪里定义此代码?给出完整的代码。使用和
而不是和
。此外,最后一行没有下一行,如果您试图访问它,则会导致异常。