J'utilise un DevexpressGridView pour afficher tous les TOPIC (id,title,content)
<dx:ASPxGridView ID="gv" runat="server"
OnSelectionChanged="gv_SelectionChanged" >
J'ai un événement 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();
}
...
Il semble que la méthode gv.SelectedRow
n'existe pas dans DevGridview.
Comme recommandé, j'ai essayé avec la méthode FocusedRowIndex
, mais je ne connais vraiment pas la bonne syntaxe pour obtenir la valeur de la ligne sélectionnée.
Aidez-moi!!!
J'ai trouvé ma réponse après une longue recherche sur Google: http://www.devexpress.com/Support/Center/Question/Details/Q347704
Utilisez la méthode ASPxGridView.GetSelectedFieldValues pour obtenir les valeurs de ligne sélectionnées sur le serveur.
Changer la sélection est différent de changer la ligne focalisée. Voir la documentation de Selection
pour connaître la différence entre les deux.
Vous pouvez utiliser gv.GetSelectedFieldValues
pour obtenir les lignes sélectionnées.
var ids = gv.GetSelectedFieldValues("id");
foreach( var id in ids )
DoSomethingWithObject(id);
Vous devez gérer l'événement FocusedRowChanged
si la ligne ciblée vous intéresse.
Vous pouvez utiliser la valeur FocusedRowIndex
pour indexer les lignes de gv.DataSource
, par exemple:
DataTable ds = (DataTable)gv.DataSource;
var id = ds.Rows[gv.FocusedRowIndex]["id"];
ou vous pouvez utiliser var id = gv.GetRowValues(gv.FocusedRowIndex, "id")
.
Vous pouvez également obtenir la ligne de données sélectionnée comme
int rowHandle = gridView1.FocusedRowHandle;
if (rowHandle != DevExpress.XtraGrid.GridControl.InvalidRowHandle)
{
return this.gridView1.GetDataRow(rowHandle);
}
Cela renverrait DataRow
Veuillez noter que c'est lorsque j'utilise Devexpress gridControl dans WinForms
Si vous souhaitez obtenir uniquement la valeur du champ ID, vous pouvez utiliser cette option.
int id = Convert.ToInt32(gv.GetRowValues(gv.FocusedRowIndex, "ID").ToString());
si vous avez un objet, vous pouvez l'utiliser
Personels selectedPersonel = gv.GetRow(gv.FocusedRowIndex) as Personels;
et obtenir la méthode de valeur est
int ID = selectedPersonel.ID;