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

Bibliothèques & Frameworks Discussion :

Mettre à jour un Grid avec JSonRest


Sujet :

Bibliothèques & Frameworks

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2005
    Messages : 307
    Par défaut Mettre à jour un Grid avec JSonRest
    Bonjour,

    Je voudrais connecter un JSonRest à un Grid.
    Ça ne marche pas trop mal, les nouveaux items sont automatiquement ajoutés, mais l'id n'est pas mis à jour pour ceux qui sont créé avec "store.newItem()".

    Ça me pose des problème puisque j'utilise ensuite cette idée lors de l'évènement "onRowClick" de la Grid.

    Quelqu'un sait comment corrigé le problème ?

    Pour info j'utilise Java/J2EE/Spring côté serveur.

    Voici mon code :
    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
    // Create the new item
    var newItem = form.gatherFormValues();
     
    // Update the store
    grid.store.newItem(newItem);
     
    // Save the changes
    grid.store.save({
         onComplete:function(){
              lib.utils.showSuccess("Item saved.");
              form.reset();
              return false;
         },
         onError:function(errorData){
              lib.utils.showError("An error occured.");
              return false;
         }
    });
     
    // Prevent form submitting
    return false;

  2. #2
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 57

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    Salut,

    Mets tu bien un ID dans la structure JSON de ton item ajouté ? Et corrspond il bien à la clé du store ?

    ERE

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2005
    Messages : 307
    Par défaut
    En fait j'ai vu quelques trucs qui clochait dans mon code, et je les corrigé.
    Mais j'ai toujours des problèmes.

    Le store envoyait une requête PUT. C'est dû au fait que j'ai newItem.id=0. J'ai supprimé cette propriété, et maintenant il m'envoit bien une requête POST.
    Mon item est bien inséré dans la base, il a un nouvel identifiant, et je le renvois en retour de ma fonction. (cf Piece jointe)

    Mon identifiant n'est toujours pas affiché dans ma Grid. Pourtant si j'en crois ce document, il suffit de renvoyer l'object pour que le store mette à jour l'id...
    Images attachées Images attachées  

  4. #4
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2005
    Messages : 307
    Par défaut
    Salut Emmanuel,

    Si je mets un id dans mon newItem (même null), le store fait une requête PUT.

  5. #5
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 57

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    Re,

    Je pense que le souci provient du fait que le store ne met pas à jour lui-même l'id au retour de ton save.

    Tu devrais mettre toi même à jour l'item du store, cela déclenchera un onSet et de là la mise à jour de la grid (fais un simple setValue).

    Enfin c'est comme ça que j'imagine les choses...

    ERE

  6. #6
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2005
    Messages : 307
    Par défaut
    Je vais essayer ça, mais dans la doc il est écrit que ça doit se faire automatiquement...

  7. #7
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2005
    Messages : 307
    Par défaut
    En fait j'avais déjà essayé, mais je ne sais pas comment récupéré l'id étant donné qu'il est incrémenté côté serveur ?

Discussions similaires

  1. Mettre à jour des tables avec un trigger
    Par Titouf dans le forum Langage SQL
    Réponses: 9
    Dernier message: 20/01/2008, 16h57
  2. Mettre à jour les données avec un ADODC
    Par ecarbill dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 25/08/2006, 21h41
  3. Mettre à jour le référentiel avec Eclipse
    Par phileme dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 16/08/2006, 10h01
  4. mettre à jour plusieurs tables avec un formulaire
    Par kangourou_agile dans le forum Access
    Réponses: 6
    Dernier message: 07/08/2006, 16h33
  5. Réponses: 3
    Dernier message: 18/07/2006, 18h37

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