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 :

Format de la sauvegarde d'un ItemFileWriteStore [Dojo]


Sujet :

Bibliothèques & Frameworks

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    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 Format de la sauvegarde d'un ItemFileWriteStore
    J'utilise un ItemFileWriteStore pour afficher un arbre. Je charge les données dans un fichier json de la forme :

    Code json : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    {
    	"identifier": "id",
    	"label": "id",
    	"items": [
    		{
    			"id": "1",
    			"children": [
    				{
    					"id":"2",
                                            "children":[ etc.

    Mais la fonction de sauvegarde renvoie un fichier de la forme

    Code json : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    {
    	"identifier": "id",
    	"items": [
    		{
    			"id": "1",
    			"children": [
    				{
    					"_reference": "2"
    				} etc.

    Qui est un format beaucoup moins pratique y a-t-il un moyen de dire à dojo que je veux la première forme et pas la deuxième ?

  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
    Bon trouvé une solution pas très élégante ("à la main") avec un _saveCustom et deux fonctions d'ecriture.

    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
    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
    51
    52
    53
     
    dojo.declare('SimpleSaveWriteStore', dojo.data.ItemFileWriteStore, {
    	_postUrl: 'postdata.php',
    	_saveCustom: function(saveCompleteCallback, saveFailedCallback){
    		dojo.xhrPost({
    			url: this._postUrl,
    			content: {	
    				data: this.meToJson()
    			},
    			load: saveCompleteCallback,
    			error: saveFailedCallback
    		});
    	},
    	itemToJson : function(item) {
    		var json = {};
    		if (item) {
    			var attributes = this.getAttributes(item);
    			if (attributes && attributes.length > 0) {
    				var i;
    				for (i = 0; i < attributes.length; i++) {
    					var values = this.getValues(item, attributes[i]);
    					if (values) {
    						if (values.length > 1 ) {
    							var j;
    							json[attributes[i]] = [];
    							for (j = 0; j < values.length; j++ ) {
    								var value = values[j];
    								if (this.isItem(value)) {json[attributes[i]].push(dojo.fromJson(this.itemToJson(value)));}
    								else {json[attributes[i]].push(value);}
    							}
    						}
    						else{
    							if (store.isItem(values[0])){json[attributes[i]] = dojo.fromJson(this.itemToJson(values[0]));} 
    							else {json[attributes[i]] = values[0];}
    						}
    					}
    				}
    			}
    		}
    		return dojo.toJson(json);
    	},
    	meToJson: function() {
    		var me = this;
    		var data = "{'identifier':'id','label':'libelle','items':[";
    		this.fetch({
    			onComplete:function(items){
    				items.forEach(function(item){data += me.itemToJson(item); data+= ",";})
    			}
    		});
    		data += "]}"
    		return data;
    	}
    });

    Voilà le code si ça peut sevir à quelqu'un....

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 25/04/2005, 09h55
  2. [TRichEdit] Comment sauvegarder au format wmf ?
    Par PpPool dans le forum Composants VCL
    Réponses: 4
    Dernier message: 14/03/2005, 14h37
  3. Compression de données au format Zip avant sauvegarde
    Par arnaud_verlaine dans le forum C++Builder
    Réponses: 4
    Dernier message: 16/09/2004, 16h40
  4. sauvegarder un objet au format .x
    Par sylvain_bos dans le forum DirectX
    Réponses: 3
    Dernier message: 19/08/2004, 23h05
  5. Sauvegarde d'une image sous un autre format
    Par gandf dans le forum C++Builder
    Réponses: 4
    Dernier message: 24/02/2004, 09h50

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