У меня есть datagrid, связанный с набором данных, и я хочу отобразить средний результат в нижнем колонтитуле для столбца, заполненного целыми числами.Datagrid: Calculate Avg или Sum для столбца в нижнем колонтитуле
Путь я полагаю, что есть 2 способа я могу думать:
1. «Использование Источник, Люк»
В коде, где я звоню DataGrid.DataBind(), используйте Метод DataTable.Compute() (или в моем случае DataSet.DataTable (0) .Compute()). Например:
Dim strAverage = DataTable.Compute("Avg(ColumnName)", "")
Но как только у меня есть это, как его можно вставить в нижний колонтитул?
2. «Bound для Славы»
Используя событие DataGrid.ItemDataBound, и вычисление нарастающего итога от каждого ListItemType.Item и ListItemType.AlternatingItem, наконец, показывать в ListItemType.Footer. Например:
Select Case e.Item.ItemType
Case ListItemType.Item, ListItemType.AlternatingItem
runningTotal += CInt(e.Item.Cells(2).Text)
Case ListItemType.Footer
e.Item.Cells(2).Text = runningTotal/DataGrid.Items.Count
End Select
Это просто неправильно, плюс я должен был бы убедиться, что runningTotal сбрасывается на каждый DataBind.
Есть ли лучший способ?