IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Probleme de Load User Control bizarre


Sujet :

C#

  1. #1
    Membre éclairé Avatar de Contrec
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39

    Informations forums :
    Inscription : Mars 2005
    Messages : 597
    Par défaut Probleme de Load User Control bizarre
    Bonjour,

    J'ai un Cree un User Control que je veut placer dans un panel de ma Form principale.

    Dans la methode de Load du User Control, je dois parcourir un DataSet et Checker des cases a cocher dans une DataGridView (toujours dans le User Control).

    Le debugger passe bien dans ma methode mais les cases a cocher ne s'affichent pas cochees.

    Pourquoi je n'arrive pas a avoir des cases cochees au lancement de mon User Control alors que si j'execute la meme methode a partir d'un click sur un Button, cela fonctionne tres bien ???

  2. #2
    Membre éclairé Avatar de Contrec
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39

    Informations forums :
    Inscription : Mars 2005
    Messages : 597
    Par défaut
    Personne ne peut m'aider ?

  3. #3
    Membre éclairé Avatar de Contrec
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39

    Informations forums :
    Inscription : Mars 2005
    Messages : 597
    Par défaut
    Je relance encore cette discussion au cas ou quelqu'un aurait eu le meme probeleme ou un probleme similaire

  4. #4
    Membre Expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Par défaut
    Peut etre check-tu les radiobutton trop tard ? je veux dire, est-ce que ce ne fonctionne qu'après un post back, ou est-ce que ca ne fonctionne pas du tout ?

  5. #5
    Membre éclairé Avatar de Contrec
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39

    Informations forums :
    Inscription : Mars 2005
    Messages : 597
    Par défaut
    Mon appli n'est pas une appli web. Je ne connais pas le post back, peut-etre pourrais-tu m'eclairer la dessus...

  6. #6
    Membre Expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Par défaut
    Si ce n'est pas une appli web le problème vient d'ailleurs..

    Le postback, c'est quand tu demande à ta page de se rafraichir.

    Essaie dans un premier temps de "forcer" une ou deux checkBox, en codant en dur un maximum de choses (construit un DataSet exprès, ou arrange toi pour avoir un cas qui va bien.) Cela te permettra peut être d'isoler l'erreur. Sinon essaie le débogger, pas à pas, et vérifie que Check vraiment certaines CheckBox

  7. #7
    Membre Expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Par défaut
    Si vraiment il te suffit de déplacer la méthode dans un eventHandler de bouton, alors il se peut que les infos ne soient pas dispo lors de la création de ton controle.

    En simplifiant :

    1 Début création userControl
    2 Appel de la méthode qui check
    3 Remplissage du Dataset
    4 Rendu graphique
    5 clic sur bouton > Appel de la méthode qui check

    2 se passera forcément mal puisque pas d'infos dans dataset.
    5 se passera bien car dataset rempli

  8. #8
    Membre éclairé Avatar de Contrec
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39

    Informations forums :
    Inscription : Mars 2005
    Messages : 597
    Par défaut
    En fait si en plus de checker les case a cocher, je change les valeurs textes des autres colonnes, cela fonctionne.
    Je passe bien dans la boucle.
    En debuggueur, je vois que les DataSets sont bien remplis lors du Load de mon user Control (la fonction qui coche et apprelees juste apres dans la meme methode de Load).

    J'ai essaye de mettre cette methode dans le DataBindingComplete aui remplit ma DataGridView, resultat :

    Il y a 3 passages dans la boucle :
    1er les cases sont vides
    2eme les cases sont vides
    3eme les caes sont bien remplies (bizarre)

    Le truc c'est que pour des raisons de performances, je ne peux pas lancer 3 fois cette methode (qui dure deja 5 secondes). De plus l'event DataBindingComplete est execute a chaque modif dans ma grille donc impossible de cocher ou decocher quelque chose sous peine de totu re-initialiser. J'ai essaye tous les events dispos qui ne s'exectutent qu'une fois au lancement et rien ne marche (EndInit des dataSets par exemple).

    J'ai mis un boutton qui lance la methode lors du click et tout marche tres bien avec ce boutton.
    Je ne vois pas pourquoi le load du User Control peut changer mes colonnes de texte et pas cocher mes colonnes de Checkboxes...
    Donc pour repondre a ta question : Oui les infos sont dispos avant l'appel de cette methode et la grille contient bien les data...

    Si tu veux plus de details ou que je teste des truc n'hesite pas, c'est la seule chose qui bloque mon appli depuis que je l'ai commencee
    Si vraiment il te suffit de déplacer la méthode dans un eventHandler de bouton, alors il se peut que les infos ne soient pas dispo lors de la création de ton controle.

    Petit resume de ce aue je voit au debuggueur :

    1) Lancement du Load User Control.
    2) Remplissage des DataSets dans cette meme methode.
    3) Methode qui check 9et qui change aussi les valeurs des autres colonnes textes pour tester).
    4) Fin de la methode Load

    Resultat :
    Datasets bien remplis
    DataGridView bien remplie
    Colonnes textes bien modifiees
    Colonnes de CheckBoxes non cochees visuellement MAIS cochees d'apres le code (si j'essaye d'afficher la value d'une case qui aurai du etre cochee j'ai True)

    Voila le probleme bizarre

  9. #9
    Membre Expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Par défaut
    et en faisant ainsi :

    remplir dataset
    appeler databind (juste pour voir)
    appeler methode qui modifie datasource
    appeler databind

    Ca donne quoi?

    (vraiment bisarre ton truc )

  10. #10
    Membre éclairé Avatar de Contrec
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39

    Informations forums :
    Inscription : Mars 2005
    Messages : 597
    Par défaut
    Pour le DataBind tu parles de l'event DataBindingComplete ?
    Pour le modifie DataSource tu parles de l'event EndInit de mon dataset ?

    Les 2 event dont je viens de parler ?
    Desole j'ai du mal a saisir, on est en fin de journee

  11. #11
    Membre éclairé Avatar de Contrec
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39

    Informations forums :
    Inscription : Mars 2005
    Messages : 597
    Par défaut
    Au fait, j'ai fait des recherches et je suis tombe sur ca

    Comme quoi je ne suis pas le seul. Je vais faire des tests

  12. #12
    Membre éclairé Avatar de Contrec
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39

    Informations forums :
    Inscription : Mars 2005
    Messages : 597
    Par défaut
    j'ai essaye le CommitEdit et cela ne marche que lorsque c'est l'utilisateur qui coche une Checkbox. Dans mon cas, les checkboxe sont cochees par programmation...

  13. #13
    Membre Expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    DataSet monDS = new DataSet();
    monDS.Add.....; // Insere les infos en dur
    maGridView.DataSource = monDS;
    maGridView.DataBind(); // Juste pour voir
     
    /* Modifie le DataSet ici */
     
    maGridView.DataSource = monDS;
    maGridView.DataBind();
    Tu place cela au chargement de ton UserControl, voir si cela fonctionne

  14. #14
    Membre éclairé Avatar de Contrec
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39

    Informations forums :
    Inscription : Mars 2005
    Messages : 597
    Par défaut
    Non rien ne marche dans le load..
    Il semblerait qu'il faut attendre le chargement complet du User Control avant de pouvoir manipuler les checkbox.

    Mais pourquoi ca maerche avec des celleules textes et pas aec des cellules checkboxes ?

  15. #15
    Membre éclairé Avatar de Contrec
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39

    Informations forums :
    Inscription : Mars 2005
    Messages : 597
    Par défaut
    Je relance cette discussion car je suis toujours bloque sur ce sujet.

  16. #16
    Membre éclairé Avatar de Contrec
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39

    Informations forums :
    Inscription : Mars 2005
    Messages : 597
    Par défaut
    Please help me

Discussions similaires

  1. probleme avec l'affichage d'une image dans un user control
    Par cpotiron dans le forum Windows Forms
    Réponses: 9
    Dernier message: 21/08/2009, 11h30
  2. "load " de la page aves un user controle smartpart
    Par bakabdel dans le forum SharePoint
    Réponses: 6
    Dernier message: 08/04/2009, 13h54
  3. User control, propriété et load control
    Par topolino dans le forum ASP.NET
    Réponses: 12
    Dernier message: 06/11/2008, 17h57
  4. [1.1]Probleme évenement avec Web User Control
    Par djoao dans le forum ASP.NET
    Réponses: 1
    Dernier message: 30/01/2007, 15h35
  5. [WebForms]Probleme de user control créé dynamiquement
    Par Kurukuru dans le forum Général Dotnet
    Réponses: 1
    Dernier message: 04/01/2007, 12h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo