我用的是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,刷新后直接定位(选中状态)下一个数据
------解决方案--------------------------------------------------------