[ASP.NET] GridView的上下列合併

摘要:[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