读书人

DataGridView排序后修改数据后行的顺

发布时间: 2012-03-13 11:21:10 作者: rapoo

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.
来自己处理排序的时机和方式

读书人网 >.NET

热点推荐