当前位置: 代码迷 >> .NET组件控件 >> DataGridView排序后,修改数据后行的顺序立即变动?如何让这行还在原位置
  详细解决方案

DataGridView排序后,修改数据后行的顺序立即变动?如何让这行还在原位置

热度:8629   发布时间:2013-02-25 00:00:00.0
DataGridView排序后,修改数据后行的顺序立即变动?怎么让这行还在原位置?
我用的是WinForm DataView、DataGrid、DataGridView排序都是同一个问题。 
修改数据后行的顺序立即变动,当数据多时不知道跑到那行了,想改后面列的也找不到此行了! 

排序后能否不立即变动行的顺序呀,请高手指点! 

例如:根据金额排序 
金额 
90 
100 
150 

如果把150更改为60后,第三行数据立即跑到第一行。 <---- 这点不好 

我的想法是:修改后仍保持在第三行,想什么时候再排序的话,用代码操作。 

我试过把在KeyPress事件中加入dataGridView1.allowsorting=false;
但是这样刚排好的顺序又变回去了,如
进入时是
100
90
150
当按升序排序时,是
90
100
150
当按键后,记录变回原来的情况了
100
90
150



------解决方案--------------------------------------------------------
你用的DataGrid吧?DataGridView没有AllowSorting属性
建议使用DataGridView,DataGrid是被淘汰的控件.
你可以设置DataGridViewColumn的SortMode = Programmatic 或 NotSortable.
来自己处理排序的时机和方式
------解决方案--------------------------------------------------------
this.dataGridView1.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable;
禁止排序,取消排序重新绑定数据
点击按钮后重新排序
或设置标识,判断标识是否排序

------解决方案--------------------------------------------------------
数据修改后,页面不重新绑定就可以了。
------解决方案--------------------------------------------------------
排序规则不要用默认的
------解决方案--------------------------------------------------------
关闭默认排序。。
手动控制
------解决方案--------------------------------------------------------
不排序就可以了,或者修改后先记住修改前的下一个数据的ID,刷新后直接定位(选中状态)下一个数据
------解决方案--------------------------------------------------------
探讨

你用的DataGrid吧?DataGridView没有AllowSorting属性
建议使用DataGridView,DataGrid是被淘汰的控件.
你可以设置DataGridViewColumn的SortMode = Programmatic 或 NotSortable.
来自己处理排序的时机和方式
  相关解决方案