问题是空值大于十进制值0.00,因此排序问题按升序排列。
Private Sub dgvTable_SortCompare(ByVal sender As Object, ByVal e As DataGridViewSortCompareEventArgs) Handles dgvTable.SortCompare
If e.Column.Index = 4 Then
e.SortResult = System.Decimal.Compare(todecimalnull(e.CellValue1), todecimalnull(e.CellValue2))
End If
e.Handled = True
End Sub
Function todecimalnull(ByVal cellvalue)
If cellvalue = "" Then
Return "0.0"
Else
Return cellvalue
End If
End Function
答案 0 :(得分:0)
我建议使用0而不是null来填充datagrid视图。 可能有理由将值保留为空,但这些可能比排序问题的重量小。
这是一个很好的SO线程,首先要使用非空值进行排序。
How to order by column with non-null values first in sql
可能需要自定义排序 - 而不是单击列,或重载排序列以应用此逻辑。 (这可能吗?)