VB.NET 如何实现DataGridView自定义排序? 50
有人知道如何对DataGridView中指定的一列进行自定义排序(自己写排序方法)吗?排序方法我自己写好了,但是不知道如何把排好的数据更新到DataGridView中,并...
有人知道如何对DataGridView中指定的一列进行自定义排序(自己写排序方法)吗?排序方法我自己写好了 ,但是不知道如何把排好的数据更新到DataGridView中,并与原来的每行数据相对应。有大师能指点一下吗?
展开
展开全部
设置了Column.SortMode = DataGridViewColumnSortMode.Automatic 后按了列标题后只有默认的排序。
我想实现自己的排序规则。
MSDN上招到了下面这段
Private Sub DataGridView1_SortCompare( _
ByVal sender As Object, ByVal e As DataGridViewSortCompareEventArgs) _
Handles DataGridView1.SortCompare
' Try to sort based on the contents of the cell in the current column.
e.SortResult = System.String.Compare(e.CellValue1.ToString(), _
e.CellValue2.ToString())
' If the cells are equal, sort based on the ID column.
If (e.SortResult = 0) AndAlso Not (e.Column.Name = "ID") Then
e.SortResult = System.String.Compare( _
DataGridView1.Rows(e.RowIndex1).Cells("ID").Value.ToString(), _
DataGridView1.Rows(e.RowIndex2).Cells("ID").Value.ToString())
End If
e.Handled = True
End Sub
但是我是用DataSource绑定数据不能触发SortCompare。
只有当未设置 DataSource 属性,并且 VirtualMode 属性值为 false 时,此事件才会发生。
IComparer 接口DataGridView1.Sort(New RowComparer(SortOrder.Descending)) 也不行。
我想实现自己的排序规则。
MSDN上招到了下面这段
Private Sub DataGridView1_SortCompare( _
ByVal sender As Object, ByVal e As DataGridViewSortCompareEventArgs) _
Handles DataGridView1.SortCompare
' Try to sort based on the contents of the cell in the current column.
e.SortResult = System.String.Compare(e.CellValue1.ToString(), _
e.CellValue2.ToString())
' If the cells are equal, sort based on the ID column.
If (e.SortResult = 0) AndAlso Not (e.Column.Name = "ID") Then
e.SortResult = System.String.Compare( _
DataGridView1.Rows(e.RowIndex1).Cells("ID").Value.ToString(), _
DataGridView1.Rows(e.RowIndex2).Cells("ID").Value.ToString())
End If
e.Handled = True
End Sub
但是我是用DataSource绑定数据不能触发SortCompare。
只有当未设置 DataSource 属性,并且 VirtualMode 属性值为 false 时,此事件才会发生。
IComparer 接口DataGridView1.Sort(New RowComparer(SortOrder.Descending)) 也不行。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询