2013-10-06 14 views
6

私はすべてのTOPIC (id,title,content)選択した行のフィールド値を取得する方法Devexpress GridView?

<dx:ASPxGridView ID="gv" runat="server" 
OnSelectionChanged="gv_SelectionChanged" > 

を表示するためにDevexpressGridViewを使用し、私がイベントをgrid_SelectionChangedています

​​

...

gv.SelectedRow方法はDevGridviewに存在していないようです。

私はFocusedRowIndexメソッドで試しましたが、実際には選択された行の値を取得するための正しい構文がわかりません。

ヘルプ!!!

答えて

8

選択を変更することは、フォーカスされた行を変更することとは異なります。これら2つの違いについては、Selectionのドキュメントを参照してください。

gv.GetSelectedFieldValuesを使用すると、選択した行を取得できます。

var ids = gv.GetSelectedFieldValues("id"); 
foreach(var id in ids) 
    DoSomethingWithObject(id); 

あなたが集中行に興味を持っている場合は、FocusedRowChangedイベントを処理する必要があります。

DataTable ds = (DataTable)gv.DataSource; 
var id = ds.Rows[gv.FocusedRowIndex]["id"]; 

か、var id = gv.GetRowValues(gv.FocusedRowIndex, "id")を使用することができます。

次の例のように、インデックスにgv.DataSourceの行をFocusedRowIndex値を使用することができます。

+0

gv.Selectionは、行の位置をお返しで右ということでしょうか?私は行の位置で何ができますか?私は価値を得るために何をしなければならないのですか?詳細を教えていただけますか? DevexpressGridViewで作業するのはとても難しいです。 –

+0

DevExpressグリッドで作業するときには、多くの欠点があります。その1つは、グリッド内のセルの値を取得するのが少し面倒です。主に 'DataSource' isn強く型付けされていません。私はより詳細な答えを更新しました。 – Alex

1

ます。またこれは、DataRowを

を返します

int rowHandle = gridView1.FocusedRowHandle; 
    if (rowHandle != DevExpress.XtraGrid.GridControl.InvalidRowHandle) 
    { 
    return this.gridView1.GetDataRow(rowHandle); 
    } 

としてデータ行を選択し得ることができ、私はWinFormsの

0

でDevExpress社GRIDCONTROLを使用していたときに、これがあるのでご注意くださいフィールド値はこれを使用できます

int id = Convert.ToInt32(gv.GetRowValues(gv.FocusedRowIndex, "ID").ToString()); 

使用この

Personels selectedPersonel = gv.GetRow(gv.FocusedRowIndex) as Personels; 

とget価値法は

int ID = selectedPersonel.ID; 
関連する問題