GridView 列上的最大值和最小值 VB.NET
MAX & MIN Value on GridView Column VB.NET
我正在开发一个小程序来获取 gridview (DevExpress) 中特定列的最大值,但我无法按需要执行它。
你能帮我看看我错在哪里吗?
Dim cells() As GridCell = GridView2.GetSelectedCells()
Dim values As New List(Of Decimal)()
For i As Integer = 0 To GridView2.RowCount - 1
Dim value As Decimal = Convert.ToDecimal(GridView2.GetRowCellValue(cells(i).RowHandle, cells(i).Column))
values.Add(value)
Next i
values.Sort()
MsgBox(values.Max().ToString())
此致。
使用内置的DataGridView,行数可以是Rows.Count -2,因为有一个额外的行供用户输入新记录。我不知道 DevExpress 是否以这种方式工作,但值得一试。
For i As Integer = 0 To GridView2.RowCount - 2
如果您的 GridView 使用 DataTable 作为数据源,那么以下代码可能会有所帮助。如果 DataTable 仍然可用,那么就从它开始。否则从网格中提取它。
DataTable 没有实现 IEnumerable 但有一个扩展方法来获取接口 (.AsEnumerable)。
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim dt = DirectCast(DataGridView1.DataSource, DataTable)
Dim maxValue = Aggregate r In dt.AsEnumerable
Into MaxID = Max(r("ID")) '"ID" is the name of a column
MessageBox.Show(maxValue.ToString)
End Sub
Min 也一样,只需将 Max 更改为 Min。
计算网格列的总摘要
gridView1.Columns("UnitsInStock").Summary.Add(DevExpress.Data.SummaryItemType.Average, "UnitsInStock", "Avg={0:n2}")
gridView1.Columns("UnitsInStock").Summary.Add(DevExpress.Data.SummaryItemType.Sum, "UnitsInStock", "Sum={0}")
Dim item As GridColumnSummaryItem = New GridColumnSummaryItem(DevExpress.Data.SummaryItemType.Max, "UnitsInStock", "Max={0}")
gridView1.Columns("UnitsInStock").Summary.Add(item)
Devexpress 文档:
我正在开发一个小程序来获取 gridview (DevExpress) 中特定列的最大值,但我无法按需要执行它。
你能帮我看看我错在哪里吗?
Dim cells() As GridCell = GridView2.GetSelectedCells()
Dim values As New List(Of Decimal)()
For i As Integer = 0 To GridView2.RowCount - 1
Dim value As Decimal = Convert.ToDecimal(GridView2.GetRowCellValue(cells(i).RowHandle, cells(i).Column))
values.Add(value)
Next i
values.Sort()
MsgBox(values.Max().ToString())
此致。
使用内置的DataGridView,行数可以是Rows.Count -2,因为有一个额外的行供用户输入新记录。我不知道 DevExpress 是否以这种方式工作,但值得一试。
For i As Integer = 0 To GridView2.RowCount - 2
如果您的 GridView 使用 DataTable 作为数据源,那么以下代码可能会有所帮助。如果 DataTable 仍然可用,那么就从它开始。否则从网格中提取它。
DataTable 没有实现 IEnumerable 但有一个扩展方法来获取接口 (.AsEnumerable)。
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim dt = DirectCast(DataGridView1.DataSource, DataTable)
Dim maxValue = Aggregate r In dt.AsEnumerable
Into MaxID = Max(r("ID")) '"ID" is the name of a column
MessageBox.Show(maxValue.ToString)
End Sub
Min 也一样,只需将 Max 更改为 Min。
计算网格列的总摘要
gridView1.Columns("UnitsInStock").Summary.Add(DevExpress.Data.SummaryItemType.Average, "UnitsInStock", "Avg={0:n2}")
gridView1.Columns("UnitsInStock").Summary.Add(DevExpress.Data.SummaryItemType.Sum, "UnitsInStock", "Sum={0}")
Dim item As GridColumnSummaryItem = New GridColumnSummaryItem(DevExpress.Data.SummaryItemType.Max, "UnitsInStock", "Max={0}")
gridView1.Columns("UnitsInStock").Summary.Add(item)
Devexpress 文档: