2011-01-29 4 views
1

У меня есть вид сетки, который содержит часы как один из столбцов. Теперь мне нужно иметь общее количество часов в нижнем колонтитуле (сумма часов для всех строк) .. как мы это добавим? Просьба помочьgridview footer

ответ

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 
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 
0

Принять сетки ракурса элементов к-данных таблицы, рассчитать общую стоимость каждого столбца программно, сделать шаблоны колонтитула для сетки-зрения, вставить метки, найти метки на событие, которое вы хотите и связывать данные.