ASP.NET将多个页脚行添加到Gridview

时间:2011-08-16 16:32:04

标签: asp.net

即目前我正在向gridview添加一个页脚行,如下所示

    Protected Sub gvShoppingCart_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs) Handles gvShoppingCart.RowDataBound
    ' If we are binding the footer row, let's add in our total
    If e.Row.RowType = DataControlRowType.Footer Then
        e.Row.Cells(5).Text = "<strong>Total Cost:</strong>"
        e.Row.Cells(6).Text = ShoppingCart.Instance.GetSubTotal().ToString("C")
    End If
End Sub

如何添加更多页脚行,即总折扣,总保存量等同样如上所述

3 个答案:

答案 0 :(得分:1)

使用默认控件只有一个页脚行,因此,您必须手动管理任何其他项目的显示,最有可能通过插入
或类似标记来创建其他行。

您可以为页脚中的字段执行自定义模板,以帮助控制布局。

答案 1 :(得分:1)

这是一些基于页脚行插入新行的代码。您可以修改它以插入多行。

    Protected Sub gvShoppingCart_DataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs) Handles gvShoppingCart.DataBound
        Dim grid as GridView = CType(sender, GridView)

        ''gets the current footer row to clone
        Dim footer As GridViewRow = grid.FooterRow
        Dim numCells = footer.Cells.Count

        Dim newRow As New GridViewRow(footer.RowIndex + 1, -1, footer.RowType, footer.RowState)

        ''have to add in the right number of cells
        ''this also copies any styles over from the original footer
        For i As Integer = 0 To numCells - 1
            Dim emptyCell As New TableCell
            emptyCell.ApplyStyle(grid.Columns(i).ItemStyle)

            newRow.Cells.Add(emptyCell)
        Next

        newRow.Cells(5).Text = "Total Discount:"
        newRow.Cells(6).Text = "55.00"

        ''add new row to the gridview table, at the very bottom
        CType(grid.Controls(0), Table).Rows.Add(newRow)

    End Sub

答案 2 :(得分:0)

您需要使用<FooterTemplate>的{​​{1}}中的<asp:TemplateField>

以下是一个示例:http://csharpdotnetfreak.blogspot.com/2009/07/display-total-in-gridview-footer.html

更好的选择是使用GridView控件。它为布局提供了更大的灵活性。