gridview页脚

时间:2011-01-29 01:53:51

标签: asp.net gridview

我有一个网格视图,其中包含小时作为列之一..现在,我需要在页脚中有一个小时(所有行的小时数)...我们如何添加?请帮忙

4 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

Imports System.Data
Imports System.Data.SqlClient


Partial Class _Default
Inherits System.Web.UI.Page

Protected Sub Page_Load(ByVal sender As Object, _
    ByVal e As System.EventArgs) Handles Me.Load

    If Not IsPostBack Then
        ' 検索を行う
        Dim cn As New SqlConnection( _
            SqlDataSource1.ConnectionString)
        Dim da As New SqlDataAdapter( _
            "SELECT count(*), sum(age) FROM person", cn)
        Dim dt As New DataTable
        da.Fill(dt)
        ' 人数と年齢の合計を取得する
        Dim n As Integer = CType(dt.Rows(0)(0), Integer)    ' 人数
        Dim sum As Integer = CType(dt.Rows(0)(1), Integer)  ' 年齢の合計
        ' フッターに設定する
        GridView1.Columns(0).FooterText = String.Format("{0}人", n)
        GridView1.Columns(1).FooterText = String.Format("合計{0}", sum)
    End If
End Sub
End Class

答案 2 :(得分:0)

在呈现每一行时(即,当它调用RowDataBound事件时)您需要保持每行的总运行时间,以下代码应该这样做。 (来自MSDN站点的示例的修改版本)

一旦到达页脚的RowDataBound事件,就会显示总小时数。

' This will keep the running total for the number of hours, and should be placed at the top of your page class

Dim Hours as Integer 


Sub detailsGridView_RowDataBound(ByVal sender As Object, _
  ByVal e As GridViewRowEventArgs)

    If e.Row.RowType = DataControlRowType.DataRow Then

        Hours  += Convert.ToDecimal(DataBinder.Eval(e.Row.DataItem, "Hours"))

    ElseIf e.Row.RowType = DataControlRowType.Footer Then
        e.Row.Cells(0).Text = "Totals Hours:"
        e.Row.Cells(1).Text = Hours.ToString("c")           
        e.Row.Cells(1).HorizontalAlign = HorizontalAlign.Right
        e.Row.Cells(2).HorizontalAlign = HorizontalAlign.Right
        e.Row.Font.Bold = True
    End If
End Sub

答案 3 :(得分:0)

将网格视图元素放到数据表中,以编程方式计算每列的总数, 为网格视图制作页脚模板,插入标签,在所需事件上查找标签并绑定数据。