2012-11-08 4 views
2

J'ai un magasin qui est utilisé pour la grille et le graphique à colonnes, mais les valeurs sont sous forme de chaîne (montants formatés côté serveur qui ne peuvent pas être effectués côté client) .doute à quelle grille ne correspond pas La solution pourrait être de stocker séparément les types de données requis pour la grille et le diagramme, mais cette méthode est inefficace parce que les mêmes données proviennent du serveur.même magasin avec différents types de données dans extjs

voici ce que je fais

if (!window.GridModel) { 
      if (!Ext.ModelManager.isRegistered('GridModel')) { 
       Ext.define('GridModel', { 
        extend: 'Ext.data.Model', 
        fields: [{ 
         name: 'LocCode', 
         type: 'string' 
        }, { 
         name: 'LocLvl', 
         type: 'string' 
        }, { 
         name: 'LocName', 
         type: 'string' 
        }, 

        { 
         name: 'cost1', 
         type: 'string' 
        }, { 
         name: 'Cost2', 
         type: 'string' 
        }, { 
         name: 'cost3', 
         type: 'string' 
        } 


    ] 
      }); 
     } 
    } 

pour tableau (non déficient)

if (!window.chartModel) { 
      if (!Ext.ModelManager.isRegistered('chartModel')) { 
       Ext.define('chartModel', { 
        extend: 'Ext.data.Model', 
        fields: [{ 
         name: 'LocCode', 
         type: 'string' 
        }, { 
         name: 'LocLvl', 
         type: 'string' 
        }, { 
         name: 'LocName', 
         type: 'string' 
        }, 

        { 
         name: 'cost1', 
         type: 'float' 
        }, { 
         name: 'Cost2', 
         type: 'float' 
        }, { 
         name: 'cost3', 
         type: 'float' 
        } 


    ] 
      }); 
     } 
    } 

d'une façon peut-être copier un magasin dans un autre avec le type de données modifiées des champs, mais je ne le font pas savoir comment copier un magasin dans un autre avec le type de données modifié.

J'utilise ExtJS 4.0.7

+0

Pour autant que je vous comprends, vous avez deux ensembles de données; un avec la chaîne formatée (que vous dites ne pourrait pas être fait un côté de client) et un avec des flottants non formatés. Vous devrez donc charger deux fois car les données ne sont plus les mêmes. Ou vous pouvez utiliser un moteur de rendu pour rendre la valeur des flottants sur le client à des chaînes appropriées ... Quoi qu'il en soit, cela ressemble à un problème localisé, car il ne dépend que du problème de formatage des flottants dans la grille. Et selon votre exemple, vous ne pouvez pas le résoudre, car vous avez vraiment deux ensembles de données différents, même si certaines parties sont égales. – sra

+0

merci sra, oui c'est le problème de la localisation, je veux afficher le montant au format indien dont je ne pouvais pas trouver/écrire la fonction formater en javascript. – amol

Répondre

3

Vous pouvez avoir différents types dans le même magasin, mais vous devez les charger manuellement ou utiliser une supercherie lors du chargement.

Vous ne savez pas si vous pouvez avoir des types totalement différents, mais vous pouvez utiliser différents sous-types.

Voici un exemple de changement de type de magasin à la volée en fonction de la réponse:

http://extjs-tutorials.blogspot.ca/2012/06/polymorphic-json-change-model-subclass.html

Questions connexes