PeTeRsLaStAr
Messages postés158Date d'inscriptionsamedi 22 juin 2002StatutMembreDernière intervention27 juin 2015
-
5 déc. 2005 à 23:41
PeTeRsLaStAr
Messages postés158Date d'inscriptionsamedi 22 juin 2002StatutMembreDernière intervention27 juin 2015
-
6 déc. 2005 à 20:49
Bonsoir.
Voilà le problème que j'ai
j'utilise dans mon application plusieurs listsbox dans des usersControls qui apparaissent ou non en fonction de ce que j'ai cliqué dans mon menu.
Il est seté graphiquement au niveau de mon datasource, et de mon displaymember/valuemember.
Pour le charger, je fais comme ceci
cmdMonDataSetDeMaliste.Fill(DSMaliste);
MonListBox.Refresh();
Pour la plupart cela se passe bien, mais pour certains, ils se chargent de manière aléatoire...
Par contre, si je fais le chargement en mode pas à pas en faisant un point d'arrrêt sur le fill, le dataset est à chaque fois rempli...
Pour le recharger correctement à chaque fois, je dois réappeler la page (qui j'imagine se reload), afin que cela s'affiche bien.
Alors oui je pourrais contourner le problème en faisant un bouton 'Refresh', mais ce ne serait pas une solution en soit...
Désolé pour la description 'obscure' du pb, le souci est que c'est vraiment aléatoire... Enfin oui et non, qd c'est lancé la première fois ça ne se charge pas, SAUF, SAuf si un autre listbox a été chargé auparvant, auquel cas là ça se passe bien à chaque fois. Et dans ts les cas, si je passe en mode debug dans le code, ça se charge bien à chaque fois...
Quelqu'un a t il déjà eu ce problème ???
Si c'est le cas, merci de me tenir au courant...
****************************************************
Mm plus le temps de jouer à W0rld 0F W@rcraft à force de trop coder...
sebmafate
Messages postés4936Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention14 février 201437 6 déc. 2005 à 09:49
dans ce cas, évite le terme : "page"... [Pour le recharger correctement à chaque fois, je dois réappeler la page (qui j'imagine se reload), afin que cela s'affiche bien. ]
peux-tu nous montrer l'extrait de ton code qui charge les combos ?
PeTeRsLaStAr
Messages postés158Date d'inscriptionsamedi 22 juin 2002StatutMembreDernière intervention27 juin 20151 6 déc. 2005 à 09:54
Autant pour moi...
Effectivement, il y a eu une confusion au niveau explication :))
Mon extrait de code chargeant les combos est celui indiqué au dessus. Seul les noms de variables changent...
//cmdMonDataSetDeMaliste est un dataadpter qui contient un
//SelectCommand.CommandText avec une re^quête SELECT dedans
//DsMaListe est un dataSet préformaté
cmdMonDataSetDeMaliste.Fill(DSMaliste);
// Chargement du listbox, enfin Refresh() (qui n'est pas
//forcément utile, mais que je rajoute à tout hasard
MonListBox.Refresh();
Souhaiterais tu voir une autre parcelle de code ? Comme tu peux le voir c'est simple au possible, et le mm code dans d'autres emplacements marche sans aucun souci...
****************************************************
Il n'y a pas de pb sans solutions : il faut juste trouver le temps pour les chercher
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_poullos
Messages postés145Date d'inscriptionlundi 13 janvier 2003StatutMembreDernière intervention27 décembre 20052 6 déc. 2005 à 09:55
Je ne comprends pas pourquoi tu n'essaies pas de mettre un this.refresh
une fois que tu as fais tous tes chargements a la place d'un bouton ce
serait psa mieux (et transparent a l utilisateur) ?
PeTeRsLaStAr
Messages postés158Date d'inscriptionsamedi 22 juin 2002StatutMembreDernière intervention27 juin 20151 6 déc. 2005 à 09:58
Je me suis sans doute mal exprimé : je n'ai pas de bouton, et justement ne souhaite pas en mettre.
Mais le this.Refresh() ne marche pas apparemment... Pas au premier chargement en totu cas, mais qd on Reload (non ce n'est pas du asp.Net), disons plutot qd on REMET en visible=true et bringToFront le userControl en question, le this.Refresh() a bien été pris en compte...
D'ou le coté 'aléatoire' de ce pb.
****************************************************
Il n'y a pas de pb sans solutions : il faut juste trouver le temps pour les chercher
PeTeRsLaStAr
Messages postés158Date d'inscriptionsamedi 22 juin 2002StatutMembreDernière intervention27 juin 20151 6 déc. 2005 à 10:21
Bon alors là j'en perds mon latin...
J'ai changé de machine (je suis passé de ma machine perso à ma machine de taf, donc bcp plus gonflée) et là ça marche...
Sans aucune modif ts mes listBox se chargent sans aucun souci...
Sachant que je bosse avec Access comme DataBase...
Etrange, etrange... Quelqu'un aurait il une idée ?
Pour info, la config que j'ai chez moi est : Athlon 2800+, 512SDRAM (je sais c juste mais bon... On dit tjrs qu'on va en racheter et on en rachète jamais), alors qu'ici(au taf donc) c'est : Pentium 2.8Ghz, 1024 de RAM
Sinon je retenterais ton test sur ma machine perfo, mais si au moins quelqu'un peut me dire que d'une machine à une autre ça peut s'expliquer ?
Ou si quelqu'un a une idée de comment résoudre le pb ?
Tain c une histoire de dingue ça, j'y crois à peine, et pourtant c bien vrai...
****************************************************
Il n'y a pas de pb sans solutions : il faut juste trouver le temps pour les chercher
sebmafate
Messages postés4936Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention14 février 201437 6 déc. 2005 à 10:28
Athlon2800+ et 512Mo de ram, c'est largement suffisant... ca permet de voir ce que tu optimises ;)
je pense par contre, que si tu enchaînes trop vites les load des tes listbox, l'ouverture/fermeture à ta base peut poser problème. Ce qui explique qu'en debug ca marche nickel.
Pour résoudre ce problème, je pense qu'il suffit que tu ajoutes un Application.DoEvents(); entre chaque chargement.
PeTeRsLaStAr
Messages postés158Date d'inscriptionsamedi 22 juin 2002StatutMembreDernière intervention27 juin 20151 6 déc. 2005 à 10:32
Ok.
Je tenterais le application.DoEvents dès ce soir, sur ma machine perso donc...
Je me doutais bien qu'il s'agissait d'un pb à ce niveau... Mais je ne savais pas comment le solutionner...
Je cloturerais le pb dès ce soir si ça marche :)
Merci pour le conseil.
:)
****************************************************
Il n'y a pas de pb sans solutions : il faut juste trouver le temps pour les chercher
PeTeRsLaStAr
Messages postés158Date d'inscriptionsamedi 22 juin 2002StatutMembreDernière intervention27 juin 20151 6 déc. 2005 à 20:49
Bon j'ai confirmation...
Mm le Application.DoEvents ne fait rien...
Voici donc mon code en détail.
Du coté de mon evt qui charge la list ça donne ça :
ocmdDataMatieres.Fill(dsMatieres1);
lstMatieres.DataSource=
null;
lstMatieres.DataSource=DvMatieres;
lstMatieres.DisplayMember = "LIB_MATIERE";
lstMatieres.ValueMember = "CODE_MATIERE";
lstMatieres.Refresh();
Application.DoEvents();
(Je passe par un DataView qui reçoit DsMatieres en entrée... mais qui n'a pas de filtre au début).
Si vous voulez que je copie d'autres parties de mon code pour éventuellement vous aider, n'hésitez pas.
Cela pourrait il venir d'un pb d'environnement ?
****************************************************
Il n'y a pas de pb sans solutions : il faut juste trouver le temps pour les chercher