Visual Basic数据网格视图 - 计数平均值

时间:2014-05-28 21:53:10

标签: vb.net datagridview

好的,所以我有一个数据网格视图DataGridView1,类似于下面的例子。

Name         Points 
Jack           15 
zack           19 
Cody           05

我希望能够计算所有点数的平均值,但点数量将是动态的并且会不时变化。所以我的解决方案必须能够工作,即使只有两个数字,当时有超过20个。

我一直在寻找一种方法来做到这一点,但大多数帖子只有在“点数”的数量是静态的情况下才有意义。许多解决方案似乎都是用C ++编写的,对于像我这样的新手编码器来说,它并没有太多用处。

那么有人可以帮助我吗?

1 个答案:

答案 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