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 :

DataGrid et JsonStore : ajout de données et rafraichissement du dataGrid [Dojo]


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 DataGrid et JsonStore : ajout de données et rafraichissement du dataGrid
    Bonjour tout le monde,

    Je possède un dataGrid connecté à un JSonRestStore.
    Je voudrais ajouter une ligne à mon tableau. D'après ce que j'ai pu lire dans la doc il suffit d'ajouter un élément dans le store et le dataGrid se met à jour automatiquement.

    C'est ce que j'ai essayé de faire en suivant ce tuto.
    L'ajout dans le store semble se dérouler correctement mais mon dataGrid ne se met pas à jour.

    Voici mon store:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    store : new dojo.store.JsonRest({
    	target:lib.utils.appBaseUrl + "admin/projects"
    }),
    Voici ma dataGrid:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    grid = new dojox.grid.DataGrid({
    	store: dataStore = dojo.data.ObjectStore({objectStore: this.store}),
    	        structure: [...]
    }, "projects-table");
     
    grid.startup();
    Et enfin voici comment j'ajoute mon item :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    var newProj = {
    	"reference": "new !!!",
    	"contractReference": "",
    	"createdOn": 1322470989000,
    	"updated_on": null,
    	"name": "Project de test",
    	"state": "INIT_PHASE1",
    	"description": ""
    };
     
    this.store.add(newProj);
    Où est-ce que ça cloche ?

  2. #2
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2011
    Messages : 136
    Par défaut
    Voir ici : http://www.developpez.net/forums/d11...e-quen-script/. Il n'y a pas besoin d'utiliser d'utiliser d'object store. En plus il faut mettre un egal entre store new et j'eviterais d'avoir deux variables qui s'appelle store et les referencess au this me paraissent un peu bizarre et c'est avec put que l'on ajoute un enregistrement.

    Code javascript : 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
    var store = new dojo.store.JsonRest({target:lib.utils.appBaseUrl + "admin/projects"});
    var grid = new dojox.grid.DataGrid({store: store, structure: ...}, "projects-table");
    grid.startup();
     
    var newProj = {
    	"reference": "new !!!",
    	"isQualifProject": true,
    	"isCertifProject": false,
    	"contractReference": "",
    	"createdOn": 1322470989000,
    	"updated_on": null,
    	"name": "Project de test",
    	"state": "INIT_PHASE1",
    	"description": ""
    };
     
    store.put(newProj);

  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
    Bonjour ernestrenan,

    Ton code ne fonctionne pas chez moi. J'ai l'erreur suivante :
    this.store.getFeatures is not a function
    J'avais déjà essayé sans le "objectStore" mais j'avais eu le même problème.
    De plus je n'ai qu'une seule variable nommée "store", il s'agit d'une propriété de mon objet.

    Ça a marché pour toi ?

    Je précise que le premier chargement se déroule correctement et ma dataGrid est bien remplie. C'est lors de l'ajout d'un item que celui-ci n'est pas affiché dans la dataGrid.

  4. #4
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2011
    Messages : 136
    Par défaut
    Oui ça marche de mon côté. Je ne comprend pas pourquoi il t'affiche un this tu declares tes variables dans un objet ?

  5. #5
    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
    Oui tout est encapsulé dans un objet.
    Tu utilise quelle version de dojo ? Moi j'utilise dojo 1.7.

  6. #6
    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,

    Observations: n'investissez pas de temps sur le Datagrid, il va disparaitre à court terme. Préférez lui le dgrid qui est le composant qui le remplace. Consommant nativement les nouveaux stores, rapide, il est bien meilleur et est (presque déjà) adapté au mobile...

    Decouverte ici (article aussi ici)

    Enfin le code du DataGrid est le suivant lors de l'affectation du store:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    	_setStore: function(store){
    		if(this.store && this._store_connects){
    			dojo.forEach(this._store_connects, this.disconnect, this);
    		}
    		this.store = store;
    
    		if(this.store){
    			var f = this.store.getFeatures();
    			var h = [];
    D'où le message d'erreur de andlio quand il passe un dojo.store.XXX
    D'ailleurs je ne comprends pas comment ernestrenan arrive à faire fonctionner ce code J'ai regardé en 1.6 et 1.7, le code est identique.

    ERE

  7. #7
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2011
    Messages : 136
    Par défaut
    J'utilise aussi dojo 1.7 avec la nouvelle version il n'y a plus besoin d'encapsuler dans un objet:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    require(["dojo/ready"], function(ready){
        ready(function(){
            require(["dojo/store/JsonRest", "dojox/grid/Datagrid"], function(store, grid){
                var myStore = new store({....});
                var myGrid = new grid({....});
            });
        });
    });

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ajouter des données dans une datagrid
    Par wild_striker dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 06/04/2012, 00h04
  2. Réponses: 1
    Dernier message: 19/08/2010, 00h46
  3. [C#] Ajouter des données manuellement DataGrid
    Par deck_bsd dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 31/05/2010, 14h02
  4. ajouter des données dans une requête htttp en js
    Par jeromejanson dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 18/10/2005, 15h34
  5. souci sur ajout de données de zone de liste
    Par Tierisa dans le forum IHM
    Réponses: 6
    Dernier message: 27/09/2005, 08h30

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