RecordIndex超出范围

时间:2011-07-25 13:01:06

标签: delphi devexpress

我正在与DevExpress网格斗争,并想知道是否有人在这个问题上得到了很好的建议。这是导致我悲伤的代码:

If GridView.Controller.SelectedRecordCount > 0 Then
Begin
    CurrentGridRow := GridView.DataController.GetRowID( 
                      GridView.Controller.SelectedRecords[ 0 ].RecordIndex );
End
Else
    CurrentGridRow := 0;

尝试获取行ID并且它是正确的时会引发异常,因为,此代码在RefreshData方法调用中,并且刚刚发生了一个更改,使记录从网格中消失。 因此,我需要解决的是判断recordindex是否仍然有效的一些方法。 我确实环顾四周,但我发现任何有用的东西,谷歌不想 分享这个好东西。

有没有人知道如何确保记录索引有效?

非常感谢!

安德烈

1 个答案:

答案 0 :(得分:2)

通过深入研究DevEx源代码,我可以看到GetRowID需要RowIndex作为参数,而不是RecordIndex

RecordIndex是网格内部DataSet中记录的索引。 RowIndex是视觉上显示的记录的索引。因此,网格中最顶部可见的行有RowIndex = 0

查看您的代码我认为您需要GetRowIndexByRecordIndex。第一个选定记录的可视索引。