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

Silverlight Discussion :

Probleme rafraichissement datagrid


Sujet :

Silverlight

  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Septembre 2006
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2006
    Messages : 389
    Par défaut Probleme rafraichissement datagrid
    Bonjour,

    J'ai un soucis de rafraichissement de données dans mon application.
    Alors j'ai un dataGrid, avec une fenetre pour ajouter des données à l'intérieur.
    Ces données proviennent d'une base de données.
    Au chargement, aucun souci.

    Par contre , j'ai créé une autre fenêtre (ChildWindow) afin d'ajouter des données dans ma base, et sur l'événement de fermeture de ma childWindow, je rafraichit mon datagrid.

    Le problème est que mon datagrid se rafraichit trop vite, le serveur n'a pas eu le temps de lui envoyer la nouvelle données.

    J'utilise des scripts PHP pour ajouter et recup mes données.

    Avez vous déjà rencontré ce problème ? car dans des écrans de paramétrage, sa ne le fait pas trop de devoir quitter la page pour y revenir ensuite pour voir ses données

    Merci

  2. #2
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Citation Envoyé par offspring Voir le message
    Bonjour,

    J'ai un soucis de rafraichissement de données dans mon application.
    Alors j'ai un dataGrid, avec une fenetre pour ajouter des données à l'intérieur.
    Ces données proviennent d'une base de données.
    Au chargement, aucun souci.

    Par contre , j'ai créé une autre fenêtre (ChildWindow) afin d'ajouter des données dans ma base, et sur l'événement de fermeture de ma childWindow, je rafraichit mon datagrid.

    Le problème est que mon datagrid se rafraichit trop vite, le serveur n'a pas eu le temps de lui envoyer la nouvelle données.

    J'utilise des scripts PHP pour ajouter et recup mes données.

    Avez vous déjà rencontré ce problème ? car dans des écrans de paramétrage, sa ne le fait pas trop de devoir quitter la page pour y revenir ensuite pour voir ses données

    Merci
    J'ai pas compris.
    Tu as un DataGrid et pour ajouter des données tu passes par un ChildWindow. Mais alors l'histoire du DataGrid qui se rafraichit trop vite j'ai pas compris.

    En général dans une application on modifie des choses pis on clic sur un bouton Save qui fait alors le call au service.

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Septembre 2006
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2006
    Messages : 389
    Par défaut
    ok lol

    En faite j'ai une page dans lequel figure un datagrid et un bouton ajouter.
    Quand on clique sur le bouton ajouter, une childwindow apparait et l'utilisateur peut inscrire de nouvelle données dans une base.

    Ensuite, la childwindow se ferme, et sur l'événement de fermeture de celle-ci je souhaite rafraichir mon datagrid.

    Le problème est que le datagrid se rafraichit, mais je n'ai pas la nouvelle valeur précedemment créé.
    Par contre quand je rafraichit de nouveau mon grid ma valeur apparait.

    j'ai essayé en mettant des Thread.sleep afin de faire une pause d'une seconde avant d'appeler ma fonction de rafraichissement, mais aucun succes

  4. #4
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Ok compris.

    Ton Grid est bindé sur un ObservableCollection ?
    Quand tu fermes ta fenêtre c'est quoi comme action que tu fais ?
    A quel moment tu ajoutes ton objet nouvellement créé à ton Grid et de quelle manière ?

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Septembre 2006
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2006
    Messages : 389
    Par défaut
    Mon grid est bindé sur une classe (J'utilise LinqToXML en creant un new class)

    Pour ma fenetre voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     fenAdmin fen = new fenAdminAjout();
     
                fen.Closed+= new EventHandler(OnFenetreClosed);
     
                fen.Show();
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        private void OnFenetreClosed(object sender, EventArgs e)
            {
     
     
                dataGrid.ItemsSource=null ;
     
                majDatagrid();
     
     
     
            }
    Merci

  6. #6
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Je voulais dire ton DataGrid. Il est bindé sur quoi ?

    C'est quoi le code de majDatagrid ?

    C'est où que tu rajoutes l'item que tu as créé dans ta ChildWindow ? Dans majDatagrid ?

  7. #7
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Septembre 2006
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2006
    Messages : 389
    Par défaut
    voici le code de la fonction majDatagrid :

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
      private void majDatagrid  ()
            {
                try
                {
                    Properties conf = new Properties();
     
                    var helper = new WebClientHelper(string.Format("{0}/getDonneeDataGrid.php", conf.getAdresseWebServeur()));
     
     
                    helper.DownloadComplete += helper_DownloadComplete;
     
     
                    helper.Execute();
     
                }
                catch (Exception ex)
                {
                    // HtmlPage.Window.Alert(ex.Message);
                    MessageBox.Show("erreur chargement donnees : " + ex.Message);
                }
     
            }
     
            void helper_DownloadComplete(object sender, DownloadStringCompletedEventArgs e)
            {
                try
                {
     
                    XDocument xmlElements = XDocument.Parse(e.Result);
                    var elements = from data in xmlElements.Descendants("DATA")
                                   select new Donnee
                                   {
                                       id = ((int)data.Element("id")),
                                       code = ((string)data.Element("code")),
                                       libelle = ((string)data.Element("libelle"))
     
     
                                   };
     
     
     
                    dataGrid.ItemsSource = elements;
     
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
     
            }
    Comme tu peux le voir, mon dataGrid est bindé sur une liste d'objet (class Donnee).
    Je ne crée pas de nouveau item, je fais une requete d'insert dans ma base, et quand ma childwindow se ferme, j'effectue une requete de select que j'appele par le script getDonneeDataGrid.php dans la fonction majDatagrid()

  8. #8
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Ok j'ai compris ton soucis.

    Tu es essayé de t'abonner au Completed de ta méthode qui fait ton insert et dans la callback d'appeler le majDatagrid ?

    Du coup tu es sûr que ton nouvel item est dans ta base quand tu rafraichit ton datagrid.

  9. #9
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Septembre 2006
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2006
    Messages : 389
    Par défaut
    merci de tes rep

    non je ne suis pas sure, c'est l'histoire de deux secondes.
    Car ma nouvelle donnée s'enregistre bien , mais je pense que mon appel pour la recupérer arrive avant que celle-ci soit presente en base;

    je vais regarder du côté du callback

    merci

  10. #10
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Citation Envoyé par offspring Voir le message
    merci de tes rep

    non je ne suis pas sure, c'est l'histoire de deux secondes.
    Car ma nouvelle donnée s'enregistre bien , mais je pense que mon appel pour la recupérer arrive avant que celle-ci soit presente en base;

    je vais regarder du côté du callback

    merci
    Ben moi je vois la chose comme

    Appel pour insert -> Arrivé dans le service -> INSERT INTO ... -> return true/false -> Retour dans la callback dans SL -> majDatagrid.

Discussions similaires

  1. probleme rafraichissement taille police
    Par yvon_huynh dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 30/08/2006, 14h57
  2. [oracle probleme rafraichissement]
    Par chouchou93 dans le forum Oracle
    Réponses: 1
    Dernier message: 15/05/2006, 17h45
  3. [C++.Net] Probleme combobox & datagrid
    Par raboin dans le forum VC++ .NET
    Réponses: 16
    Dernier message: 12/04/2006, 16h33
  4. probleme rafraichissement TDBGrid
    Par gg2laba dans le forum C++Builder
    Réponses: 2
    Dernier message: 21/04/2005, 22h59
  5. [VB.NET][DataBinding] Rafraichissement DataGrid lié à un obj
    Par speedy1496 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 21/10/2004, 10h15

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