web-dev-qa-db-ja.com

選択した行Devexpress GridViewのフィールド値を取得する方法は?

DevexpressGridViewを使用してすべてを表示しますTOPIC (id,title,content)

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

Grid_SelectionChangedイベントがあります。

protected void gv_SelectionChanged(object sender, EventArgs e)
    {

        int id= selected row...???; //how can I get the value of selected row
        string sql = "select * from TOPIC where idTOPIC="+id;
        DataTable topic = l.EXECUTEQUERYSQL(sql);
        TextBox1.Text = topic.Rows[0][1].ToString();
    }

...

そうみたいです gv.SelectedRowメソッドはDevGridviewに存在しません。

お勧めのように、FocusedRowIndexメソッドを試してみましたが、選択した行の値を取得するための正しい構文が本当にわかりません。

助けて!!!

6
vyclarks

私は長い間グーグルを検索した後、ここに私の回答を見つけました: http://www.devexpress.com/Support/Center/Question/Details/Q347704

ASPxGridView.GetSelectedFieldValues メソッドを使用して、サーバー側で選択された行の値を取得します。

1
vyclarks

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

_gv.GetSelectedFieldValues_ を使用して、選択されている行を取得できます。

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

フォーカスされた行に関心がある場合は、 FocusedRowChanged イベントを処理する必要があります。

FocusedRowIndex値を使用して、_gv.DataSource_の行にインデックスを付けることができます。次に例を示します。

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

または var id = gv.GetRowValues(gv.FocusedRowIndex, "id") を使用できます。

8
Alex

選択したデータ行を次のように取得することもできます

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

これはDataRowを返します

これは、WinFormsでDevexpress gridControlを使用している場合です。

1
Softec

IDフィールド値のみを取得する場合は、これを使用できます

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

オブジェクトがある場合は、これを使用できます

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

そして値を取得するメソッドは

int ID = selectedPersonel.ID;
0
hakan baştürk