Bonjour,
Je ne sais pas est ce que c'est possible de faire un test sur une cellule d'un GridView l'hor de la modification, je veux savoir est ce que la valeur initiale est différente à la valeur entrée.
Merci
Bonjour,
Je ne sais pas est ce que c'est possible de faire un test sur une cellule d'un GridView l'hor de la modification, je veux savoir est ce que la valeur initiale est différente à la valeur entrée.
Merci
ca, c'est ce qu'on fait à la fin, quand on veut sauvegarder ou autre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 foreach (DataGridRow row in madatagrid) { if(row.DataChanged == DataChanged.Modified) // mon traitement }
en placant un traitement identique dans le bon event, par exemple cellEdited,(ou un truc du genre), tu dois pouvoir faire ce que tu veux.
par contre, si tu edites, genre efface et remet le meme contenu, il se peut que ca estime que la valeur ait été modifiée
j'ai essayé d'implemnter ça, mais il n'ya pa une propriété DataChanged pour Row!!!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 foreach (GridViewRow row in GridViewBoq) { if (row.DataChanged == DataChanged.Modified) { } }
Tu peux aussi te servir de l'évènement RowUpdating dans lequel tu peux manipuler les collections OldValues et NewValues
j'ai déja esseyé mais ca concerne tous les champs, mais moi je veux un seul champ.
pour le moment j'arrive à récupérer la nouvel valeur, mais l'ancienne valeur que je dois la récupérer juste quand je clique sur "Edit" du gridview.
est ce qu'il ya un moyen de récupérer l'index de la ligne en cliquant sur "Edit"?!!
oui tu peux désigner n'importe quel champ dans la ligne...
genre :
en plus, tu peux récupérer l'ancienne valeur dans ce meme event :
Code : Sélectionner tout - Visualiser dans une fenêtre à part e.NewValues["monChamp"]
et à toi de les comparer et faire le traitement...
Code : Sélectionner tout - Visualiser dans une fenêtre à part e.OldValues["monChamp"]
Je me permet de faire remonter ce post :
Ca ne marche pas car ma collection de NewValues est vide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 protected void ValidationModifLigne(object sender, GridViewUpdateEventArgs e) { dttableTemp.Rows[e.RowIndex]["num"] = e.NewValues["num"]; dttableTemp.Rows[e.RowIndex]["nom"] = e.NewValues["nom"]; gridviewTemp.EditIndex = -1; //Rafraichissement de ma Gridview }
Du coup quand je fait la manipulation de modifier une valeur, la ligne de la gridview (qui est bindée à dttableTemp, une DATATABLE) a le num et le nom vide.
Merci d'avance de votre aide.
Partager