VB.NET 如何实现DataGridView自定义排序? 50

有人知道如何对DataGridView中指定的一列进行自定义排序(自己写排序方法)吗?排序方法我自己写好了,但是不知道如何把排好的数据更新到DataGridView中,并... 有人知道如何对DataGridView中指定的一列进行自定义排序(自己写排序方法)吗?排序方法我自己写好了 ,但是不知道如何把排好的数据更新到DataGridView中,并与原来的每行数据相对应。有大师能指点一下吗? 展开
 我来答
msh1028
2017-07-29 · TA获得超过2.6万个赞
知道大有可为答主
回答量:1.9万
采纳率:62%
帮助的人:1112万
展开全部
设置了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)) 也不行。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式