Modification d'une gridview (donc de la bdd) depuis le code c#

Signaler
Messages postés
78
Date d'inscription
samedi 18 novembre 2000
Statut
Membre
Dernière intervention
15 mars 2007
-
Messages postés
78
Date d'inscription
samedi 18 novembre 2000
Statut
Membre
Dernière intervention
15 mars 2007
-
Bonjour,

Tout est dans le titre, je voudrais modifier la valeur d'un champ de ma gridview mais aussi que ça modifie se valeur dans la bdd. Je voudrais que ça se produise quand je selectionne la ligne.

Merci de votre aide

9 réponses

Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
Bonjour,

il te faut autoriser la selection dans la gridview et tu n'as plus qu'a t'abonner à l'event Select de ta grdview

PS : evite les titres qui commencent par URGENT !!!


<HR>
Cyril - MVS - MCP ASP
Messages postés
78
Date d'inscription
samedi 18 novembre 2000
Statut
Membre
Dernière intervention
15 mars 2007

oui mais je ne trouve quelle fonction utiliser dans mon code C# pour mettre à jour le gridview.

Voici mon code :


protected
void GridView1_SelectedIndexChanged(
object sender,
EventArgs e)


{


}



protected
void GridView1_RowDataBound(
object sender,
GridViewRowEventArgs e)


{



if (e.Row.DataItemIndex == -1)



return;


e.Row.Attributes.Add(
"onMouseOver",
"this.style.cursor='hand';");


e.Row.Attributes.Add(
"onclick",
this.GetPostBackClientEvent(GridView1 ,
"Select$" + e.Row.RowIndex.ToString()));



if (
DataBinder.Eval(e.Row.DataItem,
"Lu").ToString() ==
"False")


{


e.Row.Font.Bold =
true;


}


}

je pense que c'est dans la fonction GridView1_SelectedIndexChanged qu'il faut que j'insere le code mais je ne sais pas quoi mettre pour mettre à jour ma gridview.

Merci de ton aide.

PS : désolé pour le urgent
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
Il faut faire un :

drigview1.datasource = tonnouveaudatasource
gridview1.databind()

Si tu utilises un sqlDataSource ou mieux encore un DatasourceObject et que lui spécifie les requetes de mis à jour & co le gridview va tout faire tout seul :)

PS : je ne comprend pourquoi tu veux que la bdd se modifie lorsque tu selectionnes une ligne, c'est plutot de l'edition que tu veux faire ?

regarde du coté du coach asp.net il y a pleins d'exemple interessant :)


<HR>
Cyril - MVS - MCP ASP
Messages postés
78
Date d'inscription
samedi 18 novembre 2000
Statut
Membre
Dernière intervention
15 mars 2007

ben en fait j'ai une liste de message gérer par la gridview et dans la bdd il y a un flag permettant de savoir si le message est lu ou non. Quand le message est non lu ça apparait en gras et donc des que le message est lu (donc qu'on le selectionne) il faut changer ce flag.

donc avec ton exemple ça change simplement de datasource mais ça ne change pas les données de la base si?
à moins que je cré une datasource qui fasse simplement l'update et pui ensuite je recharge la datasource qui selectionne les données mais c'est p-e un peu lourd.

ps : c koi coach asp.net?

merci de ton aide
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
coach asp.net =>> http://www.microsoft.com/france/msdn/aspnet/coach.mspx

Oui il faudra faire un update sur la bdd et refaire une requete


<HR>
Cyril - MVS - MCP ASP
Messages postés
78
Date d'inscription
samedi 18 novembre 2000
Statut
Membre
Dernière intervention
15 mars 2007

c'est super lourd comme manip'

je pensais quand même qu'il y avait une maniere plus elegante de faire ça. meme en php c'est moins sale c'est dire !!!

y a pas une fonction du genre gridview.selectedindex.update ("nomduchamp","nouvellevaleur")?
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
disons que j'ai pas trés bien compris ce que t'essaie de faire ...


<HR>
Cyril - MVS - MCP ASP
Messages postés
425
Date d'inscription
mercredi 22 janvier 2003
Statut
Modérateur
Dernière intervention
13 juillet 2007

Ah non, c'est très propre de faire un update sur le dataset au contraire.
C'est le principe d'ADO.NET, le mode déconnecté (de la base), les lignes modifiées dans ton dataset son flagged et elles seules vont être mises à jour au niveau de la base.
Donc si tu modifies une ligne dans ton dataset, cela revient au même que de faire un update sur une seule ligne.

Enfin j'ai peut être rien compris au problème aussi


<HR>
Azra (Florent) - MVS - MCAD.NET
Messages postés
78
Date d'inscription
samedi 18 novembre 2000
Statut
Membre
Dernière intervention
15 mars 2007

alors je vais etre aussi clair que possible...

alors je veux faire un systeme de messagerie interne. avec dans une gridview la liste des messages reçu. en gras sont les messages non lus. donc des qu'on lit un message, il ne faut qu'il apparaisse en gras.dans la table messages, il a un champs de type bit qui prend true quand le message est lu et qui est à false par defaut quand le message est non lu.

je me suis abonné à l'evenement clic sur une ligne qui correspond à un select. mais je veux qu'en plus ça modifie la valeur du booleen dans la table de façon à le marquer comme etant lu.

est ce que c'est plus clair?

merci de votre aide