Bonjour à tous,

J'essaie de réaliser une page contenant une GridView permettant de modifier où de supprimer certain élément de cette GridView.

J'ai commencé par déposer un ObjectDataSource & une GridView sur ma page. Le problème est que le nom de mes propriétés ne corresponde pas aux noms des paramètres de mes méthodes.

Exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
public class Category
{
    public Guid Id { get; set; }
    public string Name { get; set; }
}
 
public bool UpdateCategory(Guid categoryId, string categoryName);
J'ai donc assigné le DataSource associé à cette GridView par programmation :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
private void GridViewCategory_DataBind()
{
    GridViewCategory.DataSource = WeblogDataService.GetCategories();
    GridViewCategory.DataBind();
}
J'intercepte les événements :
  • RowEditing
  • RowCancelingEdit
  • RowUpdating
  • RowDeleting


J'ai plusieur problème :
  • Je n'arrive pas a récupérer ma clé (DataKeyNames). Comme par exemple dans l'événement RowUpdating, e.Key ne contient aucun élément.
  • Je n'arrive pas a récupérer les valeurs lors d'une modification. Comme par exemple dans l'événement RowUpdating, e.OldValues & e.NewValues ne contiennent aucun élément.


Est ce que vous auriez une solution
  • Soit en utilisant un ObjectDataSource où le nom des paramètres ne doivent pas être identique au nom des propriétés de notre objet
  • Soit en pouvant récuperer les clés (e.Key) et les anciennes (e.OldValues) et nouvelles (e.NewValues) valeurs.