Bonjour.

Je remplis un DataGrid via un DataSet dans mon WebForm. Etant donné que le DataSet est perdu lors de chaque aller-retour client/serveur, j'enregistre celui-ci dans une variable session.

Mon DataGrid contient sur chaque ligne le lien "Supprimer" qui fait appel a DeleteCommand lorsqu'on clique dessus. Je cherche à implémenter cette fonctionnalité, donc à supprimer la ligne correspondante de mon DataGrid, mais SANS SUPPRIMER les données contenues dans la base.

Voici mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
private void DataGrid_Resultat_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
  DataView dv=(DataView)Session["DataTableRecherche"];
 
  dv.Table.Rows[e.Item.ItemIndex].Delete();
 
  this.DataGrid_Resultat.DataSource=dv;
  this.DataGrid_Resultat.DataBind();
 
  Session["DataTableRecherche"]=dv;
}
Lorsque je supprime une ligne, ça fonctionne. Mais si je supprime la ligne suivante, ça me supprime la ligne qui est juste au-dessus. Idem si je tente de supprimer certaines lignes, soit ça supprime rien du tout, soit ça supprime la bonne ligne, soit ça supprime celle située juste au-dessus de celle qui devrait être normalement supprimée.

Je pense que les index des liens "Supprimer" ne sont pas remis à jour à chaque DataBind(). Est-ce que quelqu'un aurait une idée d'où viens le problème, et également s'il connaît une solution pour que tout rentre dans l'ordre ? D'avance, merci.