Pepin21
Messages postés63Date d'inscriptionjeudi 16 février 2006StatutMembreDernière intervention10 mai 2006
-
22 févr. 2006 à 10:30
Pepin21
Messages postés63Date d'inscriptionjeudi 16 février 2006StatutMembreDernière intervention10 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?
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 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 :)
Pepin21
Messages postés63Date d'inscriptionjeudi 16 février 2006StatutMembreDernière intervention10 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?
Pepin21
Messages postés63Date d'inscriptionjeudi 16 février 2006StatutMembreDernière intervention10 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 !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Pepin21
Messages postés63Date d'inscriptionjeudi 16 février 2006StatutMembreDernière intervention10 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?
Pepin21
Messages postés63Date d'inscriptionjeudi 16 février 2006StatutMembreDernière intervention10 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!
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 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"]
Pepin21
Messages postés63Date d'inscriptionjeudi 16 février 2006StatutMembreDernière intervention10 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.