Mise à jour d'un Datagrid

Résolu
Pepin21 Messages postés 63 Date d'inscription jeudi 16 février 2006 Statut Membre Dernière intervention 10 mai 2006 - 22 févr. 2006 à 10:30
Pepin21 Messages postés 63 Date d'inscription jeudi 16 février 2006 Statut Membre Dernière intervention 10 mai 2006 - 22 févr. 2006 à 16:40
Bonjour,
voilà mon problème : je dois faire une page en asp.net et C# qui doit permettre de faire une recherche suivant plusieurs critères. Au chargement de ma page toute la table de ma base de données est affichée dans un datagrid. Ensuite en choisissant les critères dans des dropdownlists je voudrai que les données du datagrid se mettent à jour dynamiquement. Comment puis je faire?

12 réponses

jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
22 févr. 2006 à 11:09
Bonjour,

c'est relativement simple :)

lors de ta premiere requete de la page tu fais ta requete vers la base sql pour charger un dataset ensuite tu met un dataview sur le dataset tu bind ton gridview avec ton dataview lorsque le drop change tu met un rowfilter sur le dataview et tu rebind ton gridview :)


<HR>
Cyril - MVS - MCP ASP
3
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
22 févr. 2006 à 15:05
si tu travailles en .net 1.1 tu n'as pas le gridview mais son ancetre le datagrid

pour lier un dataview avec un datagrid/gridview il suffit de faire

gridview1.datasource = tondataview
gridview1.databind()


<HR>
Cyril - MVS - MCP ASP
3
Pepin21 Messages postés 63 Date d'inscription jeudi 16 février 2006 Statut Membre Dernière intervention 10 mai 2006
22 févr. 2006 à 10:52
Je me rend compte que je n'ai pas été très clair : je voudrais qu'à chaque selection de nouveau critère, les données de mon datagrid s'affinnent. En gros je voudrais pouvoir faire des requêtes sur les données du datagrid. Est-ce possible?
0
Pepin21 Messages postés 63 Date d'inscription jeudi 16 février 2006 Statut Membre Dernière intervention 10 mai 2006
22 févr. 2006 à 11:20
Dis comme ça, je t'assure que ça n'a pas l'air simple pour une débutante ! Je vais reprendre tout ces mots clés pour les comprendre et je les appliquerai dans l'ordre donné.
Merci beaucoup pour ta réponse, je sais au moins que c'est faisable. Si j'ai un souci, je reviendrai sur le forum !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Pepin21 Messages postés 63 Date d'inscription jeudi 16 février 2006 Statut Membre Dernière intervention 10 mai 2006
22 févr. 2006 à 14:47
Je comprend pas très bien ce qu'est le gridview et donc comment le lier au dataview...
0
Pepin21 Messages postés 63 Date d'inscription jeudi 16 février 2006 Statut Membre Dernière intervention 10 mai 2006
22 févr. 2006 à 15:07
Oui c'est ça, j'ai bien un datagrid. Merci !
0
Pepin21 Messages postés 63 Date d'inscription jeudi 16 février 2006 Statut Membre Dernière intervention 10 mai 2006
22 févr. 2006 à 15:47
Pour tester le rowfilter j'ai fait ça :

protected void ville_selectedindexchanged(object sender, EventArgs e){
DV.RowFilter = " ville= 'Paris'";
grille.DataSource = DV;
grille.DataBind();
}
Et à la selection d'une ville, ça me renvoie un datagrid tout vide. Alors qu'il y a bien des lignes avec Paris comme ville.
Tu aurais une idée?
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
22 févr. 2006 à 15:52
Oui mais la est-ce que tu as bien sauvegardé ton dataset ?

il faut mettre un dataset (les données) persistants sinon ca ira pas :)


<HR>
Cyril - MVS - MCP ASP
0
Pepin21 Messages postés 63 Date d'inscription jeudi 16 février 2006 Statut Membre Dernière intervention 10 mai 2006
22 févr. 2006 à 16:17
Au secours je suis perdue!
Voilà comment j'ai fait :
J'ai déclaré un dataset resultat et un dataview DV en variable globale.
Dans la fonction page_load si ce n'est pas un postback je fais ma requete pour remplir mon datagrid en passant par le DV :
SqlDataAdapter Requete= new SqlDataAdapter ( . . . )
Requete.Fill(resultat);
DV = resultat.Tables[0].DefaultView;
grille.DataSource = DV;
grille.DataBind();
A la selection d'une ville, pouf : auto-postback, appel à la fonction ville_selectedindexchanged, et re-pouf : plus rien dans mon datagrid.
Voilà, si je peux te prendre encore qq minutes de ton temps, j'en serai heureuse!
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
22 févr. 2006 à 16:36
Oui c'est normal

aprés chaque requete tu perd ta classe donc tu perd ton dataset si tu ne le sauvegarde pas

dans le page_load il faut vérifier si la page via d'un postback ou non (page.ispostback) si ca vient pas d'un postback tu fais ton da.fill.

pour sauvegarder ton dataset il faut le mettre soit dans la variable session (ce que je te conseille) soit dans le viewstate (dans la page donc pas pour des données importante) soit dans une variable application (partagés entre tous les user)

pour stocker une variable on fait session["id"] = monds et pour la récuperer tu fais le contraire monds = (dataset)session["id"]

A partir de la je pense que tu vas t'en sortir :)


<HR>
Cyril - MVS - MCP ASP
0
Pepin21 Messages postés 63 Date d'inscription jeudi 16 février 2006 Statut Membre Dernière intervention 10 mai 2006
22 févr. 2006 à 16:39
J'ai trouvé une solution à mon problème ! J'ai sortie la fonction avec le remplissage du dataset avec la requete, le dataview et le bind du dataview au datagrid, hors du (!ispostback).
Merci Cyril d'avoir pris du temps pour moi.
0
Pepin21 Messages postés 63 Date d'inscription jeudi 16 février 2006 Statut Membre Dernière intervention 10 mai 2006
22 févr. 2006 à 16:40
Désolée, j'avais pas vu ta réponse!
0
Rejoignez-nous