2011-07-25 8 views
1

私はDevExpressグリッドに苦労しており、誰かがこの記事の良いヒントを得ているのだろうかと思っていました。これは、コードに私を引き起こして悲しみさ:行IDを取得しようとしたときRecordIndexが範囲外です

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

例外が発生します、よく、このコードはrefreshdataをメソッド呼び出しであり、ちょうどその変更があった、ので、それは、正しいですレコードがグリッドから消えた。 これを解決するために必要なのは、レコードインデックスがまだ有効かどうかを確認する方法です。 私は周りを見ていましたが、私は何か助けを見つけることができず、Googleは がこの1つの良いことを共有したくないでした。

誰かがレコードインデックスが有効であることを確認するためのヒントを得ていますか?

ありがとうございました!私はあなたが渡しているようGetRowIDがパラメータではなくRecordIndexとしてRowIndexを期待していることがわかりますデベックスソースの中に少し踏み込んことで

アンドレア

+0

devexpressサポートフォーラムにこれを投稿するともっと成功するかもしれません.... –

+0

私はあなたが正しいかもしれないと感じましたが、私は非常に短時間の間会社にいましたが、サポートアカウント資格があり、私は多くの有能な人々がここにぶら下がっていると確信しています - したがって、ショットの価値がある! –

+0

@アンドレア - 私はマージャンに同意します。 DevExpressによって提供されるサポートは非​​常に優れています。広範なデモ/ナレッジベース/オンラインヘルプも参照してください。 – Simon

答えて

2

RecordIndexは、グリッドの内部データセット内のレコードのインデックスです。 RowIndexは、視覚的に示されているようにレコードのインデックスです。グリッドの一番上に表示されている行にはRowIndex = 0

が表示されています。希望すると思うのですが、GetRowIndexByRecordIndexです。最初に選択したレコードの視覚的なインデックス。

+0

"整数の誤り"のような序数の型の不一致からくる混乱をカバーするプログラミング用語があるべきである。 "この整数のインデックス値は意味しないあなたがそれが何を意味すると思いますか? " –

+0

[MicrosoftのDLLのdebaucheryと同等のRecordIndex](http://devexpress.com/Support/Center/p/Q33881.aspx);-) –

+0

はい、私もそれに気付きましたが、これは私が書いたコードではありません私はDevExpressコンポーネントに慣れていないので、変更する前に、私は絶対にそして完全に確かめなければなりません。*私は他のものを破壊していません。 –