日期:2014-05-19  浏览次数:20810 次

关于DataSet中表格的RowIndex的问题
我的软件的设计是这样的:1个表格(是由查询条件返回的)如下(例子):
ID         NAME         AGE
1           AAA           20
2           BBB           19
3           CCC           23
4           DDD           25

在单击CELL事件里,我拿到了所单击的单元格的行的索引,即:e.RowIndex
比方说,点了第一条记录的任何字段,我就拿到了其索引值:0,然后将该值传给其他窗体,该窗体显示了AAA的详细记录

但是,我在测试的时候发现了这样的问题:
点击AGE字段,表格就会自动按AGE的大小排序:
ID         NAME         AGE
4           DDD           25
3           CCC           23
1           AAA           20                                        
2           BBB           19

但这时,你单击DDD的话,依然返回的是AAA的记录,因为排序后,各个数据的索引值依然按原表格的顺序,并没有因为发生了排序DDD的记录的Index就变成0了,其实还是3.

那么,如何使排序后,我单击DDD,就得到DDD的索引?




------解决方案--------------------
不要用e.RowIndex 使用dgrd.CurrentRowIndex即可
------解决方案--------------------
我看错你意思了 看来只要是使用取dgrd的索引都是不行的 它索引是固定的
要不你在按排序后清空ds,然后重新写下select然后放到ds中