可以通过在数据GridView的SortCompare活动上添加一部手稿来解决这个问题,其代码如下:
private void dataGridView1_SortCompare(object sender, DataGridViewSortCompareEventArgs e)
{
if (e.Column.Index == 0)
{
if (double.Parse(e.CellValue1.ToString()) > double.Parse(e.CellValue2.ToString()))
{
e.SortResult = 1;
}
else if (double.Parse(e.CellValue1.ToString()) < double.Parse(e.CellValue2.ToString()))
{
e.SortResult = -1;
}
else
{
e.SortResult = 0;
}
e.Handled = true;
}
}
从MSDN来看,对SortResult数值的描述如下:
Less than zero if the first cell will
be sorted before the second cell; zero
if the first cell and second cell have
equivalent values; greater than zero
if the second cell will be sorted
before the first cell.
请注意,在我的测验中,唯一的数字栏是第一个(指数0),因此,我对栏目索引进行了核对。
此外,根据您的需要和数据,你可能希望改进我的代码,例如,如果你有非数字数据,则我的准则将成为一个例外。
您可能看到这一点,但here是同数据GridView分类定制的MSDN网页链接。 你说,他们只是处理案文。