============dataGridView 排序问题==============

2到20个英文 2010-12-15 10:52:11
对指定列排序代码如下
ListSortDirection direction = ListSortDirection.Descending;
dataGridView1.Sort(dataGridView1.Columns[3], direction);

在右击的时候,上面代码可以对列进行排序,但如果再往dataGridView中插入数据,会自动排序,

问题;
我不想它自动排序。(我调用上面代码才进行排序)需要怎么解决,谢谢大家
...全文
246 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
2到20个英文 2010-12-16
  • 打赏
  • 举报
回复
网上找了个类,用自定义排序
dataGridView1.Sort(new RowComparer(SortOrder.Descending));

但报错如下:

DataGridView 控件被数据绑定。该控件不能使用比较器来执行排序操作

为什么?
2到20个英文 2010-12-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 jointan 的回复:]
加一隐藏列,排序权最高,默认值设为1,每次打算执行排序动做前,先置所有行的这列的值为0.
[/Quote]
排序权最高 这个是什么意思?
谢谢
2到20个英文 2010-12-15
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 jointan 的回复:]
不太明白你是要取消排序,还是稳住排序(即,已排好的不动,新添的不排),如果是稳住排序,我的方法应该可以,如果是取消排序(即回到未排序前状态),以我的经验,用DataGridView无法做到,正因为这一点,所以我从来不用dataGridView1.Sort这种方法,而是用DataView的排序功能来代替DataGridView本声提供的Sort功能.
[/Quote]

对,谢谢你

即,已排好的不动,新添的不排

不是很明白这句
加一隐藏列,排序权最高,默认值设为1,每次打算执行排序动做前,先置所有行的这列的值为0
望指点谢谢你
jointan 2010-12-15
  • 打赏
  • 举报
回复
当然,可能DataGridView也提供有取消排序功能,只不过我一直没找到,看别人有没有知道的吧.
jointan 2010-12-15
  • 打赏
  • 举报
回复
不太明白你是要取消排序,还是稳住排序(即,已排好的不动,新添的不排),如果是稳住排序,我的方法应该可以,如果是取消排序(即回到未排序前状态),以我的经验,用DataGridView无法做到,正因为这一点,所以我从来不用dataGridView1.Sort这种方法,而是用DataView的排序功能来代替DataGridView本声提供的Sort功能.
2到20个英文 2010-12-15
  • 打赏
  • 举报
回复
在我生成dataGridView1的时候,我已经加上了这句

//不用排序功能
for (int i = 0; i < dataGridView1.Columns.Count; i++)
{
dataGridView1.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable;
}

然后在右击的时候,调用了
ListSortDirection direction = ListSortDirection.Descending;
dataGridView1.Sort(dataGridView1.Columns[3], direction);

再之后数据就会自动排序了

此时需要设置什么可以不让排序,望大家讲明白一点,因为是一个新手,谢谢了

wuyq11 2010-12-15
  • 打赏
  • 举报
回复
this.dataGridView1.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable;
禁止排序,取消排序重新绑定数据
点击按钮后重新排序
或设置标识,判断标识是否排序
或使用List<T>.Sort排序
jointan 2010-12-15
  • 打赏
  • 举报
回复
加一隐藏列,排序权最高,默认值设为1,每次打算执行排序动做前,先置所有行的这列的值为0.

110,561

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧