请教!怎么要在datagrid 最后一行显示某一列的合计数!

请教!怎么要在datagrid 最后一行显示某一列的合计数!
---------------------------------------------------------------

继承DATAGRID 控件,然后在DataBind方法后加一个方法.
Function AddCountRow()
'=========================================
If Me.ViewState("IsShowCount") = False Then Exit Function
Me.AllowCustomPaging = False

Dim TypeName As String
Dim Dt As New DataTable()
Dt = CType(Me.DataSource, DataTable)
'加横向汇总
Dim i, j, k As Int16
'===========================
If Me.IsAddHorCount = True Then
Dt.Columns.Add(New DataColumn("总数", GetType(Decimal)))
For i = 0 To Dt.Rows.Count - 1
Dim Horhj As Decimal = 0
For j = 0 To Dt.Columns.Count - 2
If CheckType(Dt.Columns(j).DataType.Name.ToString) Then
Horhj = Horhj + CSng(IIf(IsDBNull(Dt.Rows(i).Item(j)), 0, Dt.Rows(i).Item(j)))
End If
Next
Dt.Rows(i).Item("总数") = Horhj
Next
End If
'=====================================
i = 0 : j = 0 : k = 0
If Dt.Rows.Count <= 1 Then
Me.DataSource = Dt
Me.DataBind()
Exit Function
End If
Dim Dc As DataColumn
Dim Dr As DataRow

For i = 0 To Dt.Columns.Count - 1
Dc = Dt.Columns(i)
If CheckType(Dt.Columns(i).DataType.Name.ToString) Then j = j + 1
Next
Dim Hj(j - 1) As Decimal
j = 0
For i = 0 To Dt.Columns.Count - 1
TypeName = Dt.Columns(i).DataType.Name.ToString
If CheckType(TypeName) Then
For k = 0 To Dt.Rows.Count - 1
Hj(j) = Hj(j) + CSng(IIf(IsDBNull(Dt.Rows(k).Item(i)), 0, Dt.Rows(k).Item(i)))
Next
j = j + 1
End If
Next
Dr = Dt.NewRow : j = 0
For i = 1 To Dt.Columns.Count - 1

If CheckType(Dt.Columns(i).DataType.Name.ToString) Then
Dr.Item(i) = Hj(j)
j = j + 1
Else
Dr.Item(i) = DBNull.Value
End If
Next
Dr.Item(0) = "总数:"
Dt.Rows.Add(Dr)
Me.DataSource = Dt
Me.DataBind()
Me.Items(Dt.Rows.Count - 1).BackColor = System.Drawing.Color.BurlyWood
' AlignColumn()
End Function
---------------------------------------------------------------
或:
Dim dr As DataRow
dr = tempdt.NewRow
dr(0) = "总计"
dr(5) = tempdt.Rows.Count
tempdt.Rows.Add(dr)
---------------------------------------------------------------

Published At
Categories with Web编程
Tagged with
comments powered by Disqus