Asp.net 合并中继器记录的行单元格
当活动代码和车辆编号重复出现时,我尝试合并行单元格,如下图所示。下面列出的结果是gridview页面大小为20 问题Asp.net 合并中继器记录的行单元格,asp.net,vb.net,Asp.net,Vb.net,当活动代码和车辆编号重复出现时,我尝试合并行单元格,如下图所示。下面列出的结果是gridview页面大小为20 问题 例如,当网格视图页面大小设置为2时,行单元格不再合并。结果显示每个分离的记录 如果活动代码按升序/降序排序,则即使活动代码与车辆编号匹配,最后一个记录行单元格也不会合并。下图显示了按升序排序的活动代码。因此,当活动代码按降序排序时,所有CMP002都将合并,而CMP001的最后一条记录将不再合并,如下图所示 代码隐藏 Private Sub GV_RowDataBound(se
Private Sub GV_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GV.RowDataBound
For rowIndex As Integer = GV.Rows.Count - 2 To 0 Step -1
Dim gvRow As GridViewRow = GV.Rows(rowIndex)
Dim gvPreviousRow As GridViewRow = GV.Rows(rowIndex + 1)
Dim sCurrCampaignCode As String = GV.DataKeys(rowIndex).Values("CAMPAIGN_CODE")
Dim sCurrVehicleNo As String = GV.DataKeys(rowIndex).Values("VEHICLE_NO")
Dim sPreviousCampaignCode As String = GV.DataKeys(rowIndex + 1).Values("CAMPAIG_CODE")
Dim sPreviousVehicleNo As String = GV.DataKeys(rowIndex + 1).Values("VEHICLE_NO")
If sCurrCampaignCode = sPreviousCampaignCode AndAlso sCurrVehicleNo = sPreviousVehicleNo Then
If sCurrCampaignCode = sPreviousCampaignCode Then
If gvPreviousRow.Cells(1).RowSpan < 2 Then
gvRow.Cells(1).RowSpan = 2
gvRow.Cells(2).RowSpan = 2
gvRow.Cells(3).RowSpan = 2
Else
gvRow.Cells(1).RowSpan = gvPreviousRow.Cells(1).RowSpan + 1
gvRow.Cells(2).RowSpan = gvPreviousRow.Cells(2).RowSpan + 1
gvRow.Cells(3).RowSpan = gvPreviousRow.Cells(3).RowSpan + 1
End If
gvPreviousRow.Cells(1).Visible = False
gvPreviousRow.Cells(2).Visible = False
gvPreviousRow.Cells(3).Visible = False
End If
End If
Next
End Sub
Private子GV_RowDataBound(发送方作为对象,e作为GridViewRowEventArgs)处理GV.RowDataBound
对于rowIndex As Integer=GV.Rows.Count-2到0步骤-1
将gvRow标注为GridViewRow=GV.Rows(行索引)
Dim gvPreviousRow作为GridViewRow=GV.Rows(rowIndex+1)
Dim SCURRAMPAINTCODE作为字符串=GV.DataKeys(rowIndex).value(“活动代码”)
Dim SCRURRVICELENO作为字符串=GV.数据键(行索引).值(“车辆号”)
Dim SPREVIOUSAMPAINCODE作为字符串=GV.DataKeys(行索引+1).Values(“CAMPAIG_代码”)
Dim sPreviousVehicleNo作为字符串=GV.数据键(行索引+1).值(“车辆号”)
如果疾驰活动代码=sPrevious活动代码且疾驰车辆否=sPrevious车辆否,则
如果匆匆活动代码=sPreviousCampaignCode,则
如果gvPreviousRow.Cells(1).RowSpan<2,则
gvRow.Cells(1).RowSpan=2
gvRow.Cells(2).RowSpan=2
gvRow.Cells(3).RowSpan=2
其他的
gvRow.Cells(1).RowSpan=gvPreviousRow.Cells(1).RowSpan+1
gvRow.Cells(2).RowSpan=gvPreviousRow.Cells(2).RowSpan+1
gvRow.Cells(3).行span=gvPreviousRow.Cells(3).行span+1
如果结束
gvPreviousRow.Cells(1).Visible=False
gvPreviousRow.Cells(2).Visible=False
gvPreviousRow.Cells(3).Visible=False
如果结束
如果结束
下一个
端接头
我刚刚找到了一个解决办法。代码必须从RowDataBound移动到OnDataBound