2014-06-12 63 views
0

問題是空值大於十進制值0.00,因此排序問題會以升序排列。DataGridView在Decimal列中用空值排序

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

我想通過使用上面的代碼先null然後0.0000,plz幫助我儘快 – user3733960

回答

0

我會建議使用0而不是null填充datagrid視圖。 可能有理由將值留空,但是這些可能會比排序問題重。

這是一個很好的SO線程首先排序非空值。

How to order by column with non-null values first in sql

自定義排序可以是必需的 - 而不是單擊列,或過載排序列來應用此邏輯。 (這是可能的嗎?)