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 :

rafraichissement de xml dans un datagridview


Sujet :

C#

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 193
    Par défaut rafraichissement de xml dans un datagridview
    Bonjour à toute la communauté c#

    Je fais une fois de plus appel à vous, car j'ai toujours été aidé avec succès.
    Mon problème ici est que je souhaite trouver une méthode de rafraichissement
    de mon datagridview, mais je ne veux pas de timer.
    Je souhaiterais un petit truc discret du genre les deux petites flèches arrondis que l'on
    trouve un peu près partout pour rafraichir des données ou des pages web......
    Je trouve cette idée beaucoup plus sympa qu'un timer.

    Mais voilà j'ai juste l'idée. Alors avant tout est-ce possible ?
    Si oui, comment dois-je m'y prendre ?

    Merci de vos réponses

    A bientot j'espere

    Isma

  2. #2
    Modérateur
    Avatar de toopac
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 940
    Par défaut
    Oui c'est possible. Tu crée un bouton, tu lui donnes l'image que tu veux.

    Et lorsque tu cliques dessus, tu exécutes ton code de rafraichissement.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 193
    Par défaut
    ah ok ok

    merci encore toopak.

    sinon le code sera semblable à celui d'un timer ? (je crois)

    Car en réalité si tu veux mon widget pour qu'il m'affiche les bonnes valeurs,
    faut que je le quitte et puis que je recompil. Et c'est seulement là qu'il prend en
    considérations les nouvelles valeurs.

    Je veux préciser aussi que dans le passé j'ai essayé un timer mais au rafrachissement tout le style que j'ai appliqué à mon datagridview disparait
    et ça deviens pas trop jolie.

    C'est pour ça que je veux quelque chose de complètement différent cette fois-ci.

    Bon déjà vais mettre un bouton et y coller une image

    merci pour l'info

  4. #4
    Modérateur
    Avatar de toopac
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 940
    Par défaut
    Déplace tout le code que tu fais pour ajouter des données et mettre en forme ton datagrid dans une fonction, et appelle-la au chargement, et à chaque clic sur ton bouton de rafraichissement.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 193
    Par défaut
    interessant ta réponse vais regarder ça de plus près et je te redis demain

    merci

  6. #6
    Modérateur
    Avatar de toopac
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 940
    Par défaut
    Il faudrait d'ailleurs mieux faire 2 méthodes : une qui gère les données et l'autre l'affichage, ça sera plus facile à maintenir.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 193
    Par défaut
    ok

    ça y est pour le bouton et l'image.
    maintenant le pb est le meme qu'avec le timer.
    Car j'ai pas précisé, j'ai un datgridview pour 2 dataset differents.
    2 boutons (page1 et page2) page1 pour les stats(statsdataset) et page2 pour
    les commandes(comdataset).
    lorsqu'il y rafraichissement page2 prend les valeurs de page1.....


  8. #8
    Modérateur
    Avatar de toopac
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 940
    Par défaut
    tu ne dois pas rafraichir ton datagrid avec le bon dataset...

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 193
    Par défaut
    ok merci toopac

    ça me fera pas mal de boulot pour demain.
    En espérant que je vais pouvoir résoudre ce problème
    persistant.
    En tout cas tes infos sont très claires.
    Donc je vois ça demain et je te redis.

    Merci et bonne soirée

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 193
    Par défaut
    salut toopac,

    je reviens vers toi par rapport à ton mess sur le fait de creer des fonctions à part pour le style de mon dgv.
    Alors ce que j'ai fais dans un premier temps, c'est donc de creer 2 fonctions à part pour le style ( une pour le style des stats, et une pour le style des commandes).
    Pour rappel page1 et page2.

    je les ai appelé de la manière suivante: dataGridViewStatStyle() et dataGridViewComStyle(). Je les ai biensur déclarer en private. Je met tout le style que je souhaite dedans.

    Ensuite je les appelles au chargement de la manière suivante :
    this.dataGridViewStatStyle() et this.dataGridViewComStyle().

    je les appelles également dans l'évenement du click du bouton refresh().

    Ensuite en ce qui concerne le codage de mon bouton refresh, ce que je désire c'est lui indiquer l'url où aller chercher les infos.
    Seulement j'ai 2 url différents pour page1(stats) et page2(commande)

    Alors je vois pas comment m'y prendre. Donc j'ai tout de meme essayé de faire de la manière suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
     
            private void btnRefresh_Click(object sender, EventArgs e)
            {
                string filePath1 = "http://www.beautefrance.com:8080/script/widget_cmdjour.php";
                XmlTextReader txtReader1 = new XmlTextReader(filePath1);
     
                comsdataset.Clear();
                comsdataset.ReadXml(txtReader1);
                dataGridView1.DataSource = comsdataset;
                dataGridView1.DataMember = "commande";
     
     
                string filePath = "http://www.beautefrance.com:8080/script/widget_statsvente.php";
                XmlTextReader txtReader = new XmlTextReader(filePath);
     
                statsdataset.Clear();
                statsdataset.ReadXml(txtReader);
                dataGridView1.DataSource = statsdataset;
                dataGridView1.DataMember = "stat";
     
                // appel du style du datgridview 
                this.dataGridViewStatStyle();
                this.dataGridViewComStyle();
            }
    Dès que je rafraichis, une erreur se produit dans l'une des fonctions de style, à la ligne suivante, que je cite :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      dataGridView1.Columns["id"].Visible = false;
    message d'erreur :
    La référence d'objet n'est pas définie à une instance d'un objet .....
    Si tu as une petite explication pour m'aiguiller, elle est bien venue.

    merci

  11. #11
    Membre éclairé Avatar de gdkenny
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 251
    Par défaut
    La colonne "id" n'existe pas dans le tableau des colonnes. Problème de Casse?
    "ID"?
    Je ne sais pas si c'est case sensitive.

    Tu ne peux peut-être pas gérer ce genre de chose avant le bind des données et donc la reconstruction des contrôles d'affichage.

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 193
    Par défaut
    en fait ces données ce base sur du xml, mon dgv m'affiche toutes les données de ce xml dans un tableau.......
    Mais comme certaines infos ne m'interesse pas, j'ai souhaité les rendres invisibles.
    Car l'erreur se situe parfois dans l'autre fonction de style avec le meme message d'erreur, à la ligne suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     dataGridView1.Columns["nb_utilisateur_newsletter"].Visible = false;

  13. #13
    Modérateur
    Avatar de toopac
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 940
    Par défaut
    effectivement l'erreur veut dire que soit l'objet dataGridView1 est null, soit que l'objet Columns["id"] est null.

    Je pense donc comme gdkenny que la colonne 'id' ne doit pas exister dans ton datagridview.

    Elle n'existe pas parce que tu charges d'abord dans ton datagrid comsdataset (dans lequel tu dois avoir une colonne id), puis le dataset statsdataset (dans lequel il n'y a pas de colonne id).

    Au final tu as les donnée de stat dans ton datagrid. Donc pas de colonne id.
    Et du coup quand tu appelles la méthode dataGridViewComStyle(), qui, si j'ai bien compris essaye de cacher le colonne id, ça plante.


    Lors du click sur le bouton, il faut savoir quelle données tu veux rafraichir (commandes ou stats), et pas essayer de faire les deux à la suite comme tu le fait.



    [edit] même problème avec "nb_utilisateur_newsletter" que "id". La colonne est présente dans un dataset, mais pas dans l'autre.

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 193
    Par défaut
    oui tu as bien compris....
    Mais c'est les deux que je veux rafraichir.
    Mon code refresh est faux? C'est pour ça.

    Donc comment je peux m'y prendre alors ? Si je n'abuse.

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 193
    Par défaut
    ou alors je viens d'avoir une idée. peut etre que je devrais revenir sur la methode de timer.
    Mais il serait pas préférable d'en faire 2 ????
    Un timer pour les stats et un autres pour les commandes.

    Qu'en pensez-vous ?

  16. #16
    Modérateur
    Avatar de toopac
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 940
    Par défaut
    Non le problème en viens pas de là.

    Tu ne peux pas avoir 2 jeux de données dans un seul datagrid.


    En gros avant de rafraichir tu dois savoir quelles données mettre dans ton datagridview : les stats ou les commandes.

    Comment tu les différencies si tu n'a qu'un seul datagrid?

  17. #17
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 193
    Par défaut
    ben je les différencie grace au dataset.....

    après c'est vrai qu'il s'affiche dans le meme dgv

    mais bon je vois pas de trop aussi

  18. #18
    Modérateur
    Avatar de toopac
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 940
    Par défaut
    Ta fonction devrait plus ressembler à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    private void buttonRefresh_click(object sender, EventArgs e)
    {
         if (afficherStat)
         {
            string filePath = "http://www.beautefrance.com:8080/script/widget_statsvente.php";
            XmlTextReader txtReader = new XmlTextReader(filePath);
            statsdataset.Clear();
            statsdataset.ReadXml(txtReader);
            dataGridView1.DataSource = statsdataset;
            dataGridView1.DataMember = "stat";
     
            dataGridViewStatStyle();
         }
         else
         {
            string filePath1 = "http://www.beautefrance.com:8080/script/widget_cmdjour.php";
            XmlTextReader txtReader1 = new XmlTextReader(filePath1);
     
            comsdataset.Clear();
            comsdataset.ReadXml(txtReader1);
            dataGridView1.DataSource = comsdataset;
            dataGridView1.DataMember = "commande";
     
            dataGridViewComStyle();
         }
    }

  19. #19
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 193
    Par défaut
    je peux te mettre le code complet du widget ????

    Pas pour que tu le fasse à ma place biensûr.
    Mais pour que tu puisse me dire où sont les erreurs
    de manière à savoir où je dois me pencher et sur quel problème.



    Car ça fait presque 2 mois que j'ai ces soucis de rafraichissemnt de m.......

  20. #20
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 193
    Par défaut
    magnifique, tu me crois j'y ai pensé
    mais incapable de créer exactement le code (juste)

    donc j'essai ça

    merci, merci, merci

    Tu vas figurer dans mon rapport de stage toopac.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 5
    Dernier message: 07/11/2010, 17h34
  2. Réponses: 7
    Dernier message: 05/05/2010, 11h40
  3. Afficher dans une datagridview un XML générer par Excel
    Par Arsou dans le forum Windows Forms
    Réponses: 6
    Dernier message: 30/09/2009, 10h26
  4. Réponses: 2
    Dernier message: 28/09/2006, 09h48
  5. problème xsl : inclure une donnée xml dans une balise html
    Par djodjo dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 03/01/2003, 09h24

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