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;
}
浙公网安备 33010602011771号