好的,所以我有一个数据网格视图DataGridView1
,类似于下面的例子。
Name Points
Jack 15
zack 19
Cody 05
我希望能够计算所有点数的平均值,但点数量将是动态的并且会不时变化。所以我的解决方案必须能够工作,即使只有两个数字,当时有超过20个。
我一直在寻找一种方法来做到这一点,但大多数帖子只有在“点数”的数量是静态的情况下才有意义。许多解决方案似乎都是用C ++编写的,对于像我这样的新手编码器来说,它并没有太多用处。
那么有人可以帮助我吗?
答案 0 :(得分:1)
我会强制它在数据网格中绘制一个很好的额外行,方法是使用联合选择和sqldatabind中每列的空格。这将为数据集添加一个很好的行,将其格式化为总计行。您可能需要对行进行编号,以便您的总计行因排序而排在最后。在结果中添加术语“总计”作为控件或以另一种方式处理它。
之后,当你的网格绘制行时,它只是稍微调整一下.. 类似......
Protected Sub GridView1_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound
Dim dRow As GridViewRow = sender
If dRow.RowType = DataControlRowType.DataRow Then
If dRow.Cells(0).Text = "Total" Then
Dim rx As Integer
Dim TotalValue As Double = 0
For rx = 0 To GridView1.Rows.Count - 2
TotalValue += CDbl(GridView1.Rows(rx).Cells(1).Text)
Next
dRow.Cells(1).Text = FormatNumber(TotalValue, 2)
End If
End If
End Sub