У меня есть сетка данных, привязанная к набору данных, и я хочу отобразить средний результат в нижнем колонтитуле столбца, заполненного целыми числами.
Как я понимаю, есть два способа, которыми я могу думать:
1. "Использовать Источник , Люк"
В коде, где я вызываю DataGrid.DataBind (), используйте метод DataTable.Compute () ( или в моем случае DataSet.DataTable (0) .Compute () ). Например:
Dim strAverage = DataTable.Compute("Avg(ColumnName)", "")
Но как только я получу это, как мне вставить его в нижний колонтитул?
2. " Связан для Славы"
Используя событие 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 сбрасывается при каждой привязке данных.
Есть ли лучший способ?