ASP.NET向GridView添加多个页脚行

4
目前,我正在向我的网格视图添加页脚行,方法如下:
    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个回答

4

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

    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

只有在2022年,对于WebForms Web应用程序,使用创建新的GridViewRow解决方案才适用于我。而其他答案中尝试使用创建新的TableRow并不起作用(针对多个GridView页脚行)。 - liviriniu

1

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

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


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接