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
メソッドを試してみましたが、選択した行の値を取得するための正しい構文が本当にわかりません。
助けて!!!
私は長い間グーグルを検索した後、ここに私の回答を見つけました: http://www.devexpress.com/Support/Center/Question/Details/Q347704
ASPxGridView.GetSelectedFieldValues メソッドを使用して、サーバー側で選択された行の値を取得します。
選択の変更は、フォーカスされた行の変更とは異なります。 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")
を使用できます。
選択したデータ行を次のように取得することもできます
int rowHandle = gridView1.FocusedRowHandle;
if (rowHandle != DevExpress.XtraGrid.GridControl.InvalidRowHandle)
{
return this.gridView1.GetDataRow(rowHandle);
}
これはDataRowを返します
これは、WinFormsでDevexpress gridControlを使用している場合です。
IDフィールド値のみを取得する場合は、これを使用できます
int id = Convert.ToInt32(gv.GetRowValues(gv.FocusedRowIndex, "ID").ToString());
オブジェクトがある場合は、これを使用できます
Personels selectedPersonel = gv.GetRow(gv.FocusedRowIndex) as Personels;
そして値を取得するメソッドは
int ID = selectedPersonel.ID;