摘要:[ASP.NET] GridView的上下列合併
問題描述 :

最近有需要在資料相同的時候,想要把同樣的欄位名稱合併起來(如圖中代號一欄)
經過搜尋之後,發現這時候可以透過Pre_Render的事件將欄位合併
Protected Sub GridView1_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles GridView1.PreRender
Dim i As Integer = 1
Dim wkItem As GridViewRow
For Each wkItem In GridView1.Rows
If CInt(wkItem.RowIndex) = 0 Then '資料為第一列時
wkItem.Cells(0).RowSpan = 1
Else
If wkItem.Cells(0).Text.Trim() = GridView1.Rows(CInt(wkItem.RowIndex) - i).Cells(0).Text.Trim() Then '當此列與上一列的內容相同時合併
GridView1.Rows(CInt(wkItem.RowIndex) - i).Cells(0).RowSpan += 1
i = i + 1
wkItem.Cells(0).Visible = False
Else
GridView1.Rows(CInt(wkItem.RowIndex)).Cells(0).RowSpan = 1 '如果不同則不合併
i = 1
End If
End If
Next
End Sub
合併之後

在此記錄
參考資料 : http://www.dotblogs.com.tw/mis2000lab/archive/2008/04/24/3451.aspx