January 29, 2009

GridView的表尾合併範例

用GridView做顯示報表時,常常需要做表尾合併用來顯示如分數、金額、人數的總和或平均。本篇文章要示範如何在GridView做表尾合併。
在做合併功能前,請務必先將GridView的屬性ShowFooter設定為True,接著參考下圖:
根據上圖顯示,我們要將GridView的Footer顯示成兩個Cell,第一個Cell為五個欄位合併(流水號、姓名、國文、英文、數學),Cell內的文字內容為"總分平均";第二個Cell用來顯示總分欄位的平均值。接下來開始進行合併,我們將程式撰寫在GridView的RowCreated事件中,請參考下方code snippet:
    Protected Sub GridView_RowCreated(ByVal sender As Object, ByVal e As GridViewRowEventArgs) Handles GridView.RowCreated

        If Not (e.Row.RowType = DataControlRowType.Footer) Then
            Exit Sub
        End If

        Dim footer As TableCellCollection = e.Row.Cells

        '清除Footer原本的Cells
        footer.Clear()

        '第一個Cell
        Dim tc1 As New TableCell()
        tc1.Text = "總分平均"
        tc1.ColumnSpan = 5
        tc1.HorizontalAlign = HorizontalAlign.Right
        footer.Add(tc1)

        '第二個Cell
        footer.Add(New TableCell())
    End Sub

說明
1.footer.Clear()用來清除在GridView Footer中原本所存在的Cells,如果不以Clear()清除的話,等於是在原本已有的Cells上再加入新的Cell,則GridView會變成如下顯示:
2.ColumnSpan用來設定合併的欄位數,HorizontalAlign用來設定水平位置
3.完整範例可參考GridViewFooterMerge.zip

No comments: