我正在与DevExpress网格斗争,并想知道是否有人在这个问题上得到了很好的建议。这是导致我悲伤的代码:
If GridView.Controller.SelectedRecordCount > 0 Then
Begin
CurrentGridRow := GridView.DataController.GetRowID(
GridView.Controller.SelectedRecords[ 0 ].RecordIndex );
End
Else
CurrentGridRow := 0;
尝试获取行ID并且它是正确的时会引发异常,因为,此代码在RefreshData方法调用中,并且刚刚发生了一个更改,使记录从网格中消失。 因此,我需要解决的是判断recordindex是否仍然有效的一些方法。 我确实环顾四周,但我发现任何有用的东西,谷歌不想 分享这个好东西。
有没有人知道如何确保记录索引有效?
非常感谢!
安德烈
答案 0 :(得分:2)
通过深入研究DevEx源代码,我可以看到GetRowID需要RowIndex
作为参数,而不是RecordIndex
。
RecordIndex
是网格内部DataSet中记录的索引。 RowIndex
是视觉上显示的记录的索引。因此,网格中最顶部可见的行有RowIndex = 0
查看您的代码我认为您需要GetRowIndexByRecordIndex
。第一个选定记录的可视索引。