C# datagridview 空值 排序

今天遇到了一个问题 datagridview空值 排序   经过查阅资料 发现了 datagridview的一个事件 SortCompare

private void dgvInfo_SortCompare(object sender, DataGridViewSortCompareEventArgs e)
{
if (e.CellValue1.ToString() == "" && e.CellValue2.ToString() == "")
{ e.SortResult = 0; }
if (e.CellValue1.ToString() == "" && e.CellValue2.ToString() != "")
{ e.SortResult = -1; }
if (e.CellValue1.ToString() != "" && e.CellValue2.ToString() == "")
{ e.SortResult = 1; }
if (e.CellValue1.ToString() != "" && e.CellValue2.ToString() != "")
{
e.SortResult = String.Compare(e.CellValue1.ToString(), e.CellValue2.ToString());
}
e.Handled = true;
}

 

修改后

 private void dgvSaleList_SortCompare(object sender, DataGridViewSortCompareEventArgs e)
        {
            if (e.CellValue1 != null && e.CellValue2 != null)
            {
                if (e.CellValue1.ToString() == "" && e.CellValue2.ToString() == "")
                {
                    e.SortResult = 0;
                }
                if (e.CellValue1.ToString() == "" && e.CellValue2.ToString() != "")
                {
                    e.SortResult = -1;
                }
                if (e.CellValue1.ToString() != "" && e.CellValue2.ToString() == "")
                {
                    e.SortResult = 1;
                }
                if (e.CellValue1.ToString() != "" && e.CellValue2.ToString() != "")
                {
                    e.SortResult = System.String.CompareOrdinal(e.CellValue1.ToString(), e.CellValue2.ToString());
                }
            }
            else
            {
                e.SortResult = -1;
            }
            e.Handled = true;
        }

posted on 2013-08-21 20:05  猎骑兵  阅读(648)  评论(0)    收藏  举报

导航