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

Ext JS / Sencha Discussion :

Ext gridPanel avec complexe data


Sujet :

Ext JS / Sencha

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de fahdijbeli
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2012
    Messages : 281
    Par défaut Ext gridPanel avec complexe data
    Bonjour,
    malheureusement je peux pas poster mon code ici la société m'impose de ne pas donner un code ni imprime écran mais je vais expliquer mon problème avec un exemple similaire:
    Bon le but de moi est je dois récupérer un json comme ça :
    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
    {
        "data": {
            "CompetenceName": "abc",
            "type": "xyz",
            "resourcesLevels": [
                {
                    "currentLevel": "0",
                    "targetLevel": "1"
                },
                {
                    "currentLevel": "1",
                    "targetLevel": "2"
     
                }
            ]
        }
    }
    ici dans mon cas le nombre de resources levels est variable donc chaque compétence has many ressources Levels, bon je dois afficher dans une grid et dans chaque ligne de cette dernier le nom du compétence, le type ,et dans la méme ligne tous les resources (current,target), donc j'ai une grid avec ses colonnes :
    competenceName,type, oups dans ce cas je dois connaitre le nombre de resources Level pour compléter les autres colonnes donc je dois construire une grid dynamiquement, supposant on a 2 resourcesLevel don les colonnes de la grid seront :
    competenceName,type,resourcelevel(son nom:le nom de la resource exp :M,XX et avec deux sous colonnes current level,target level),resourcelevel(son nom:le nom de la resource exp :M,YY et avec deux sous colonnes current level,target level), mon probléme ici si dans chaque colonne currentLevel,targetLevel de chaque resource je dois préciser une dataIndex pour chacun pour currentLevel(dataIndex:'currentLevel') et targetLevel(dataIndex:'targetLevel') là il me dit qu'il y a un conflit de noms j'ai compris le problème c'est à dire il y a beaucoup de currentLevel et targetLevel pour une ligne de grid mais je sais pas comment je peux trouver une solution ou une idée pour ça .
    Merci.

  2. #2
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    je croix qu'il va te falloir être plus clair car je n'ai absolument rien compris.

    tu fais un tree-grid ?
    A+JYT

  3. #3
    Membre éclairé Avatar de fahdijbeli
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2012
    Messages : 281
    Par défaut
    Salut,
    merci l'ami pour la réponse, voila j'ai fait l'exemple ici http://jsfiddle.net/D5UsU/ est la je veux que chaque current et target associé au store, moi dans mon truc j'ai fait le renderer mais les deux sous colonne (current et target) ne sont pas lié au store donc il n y a pas de dataIndex car si je modifie la valeur de current ou target dans le grid l’événement update du store ne se déclenche pas donc mon problème au lieu de renderer comment je peux associer le current et target de chaque ressource dans mon store alorque j'ai fait dataIndex sur current et target mais n'affiche rien.
    Merci.

  4. #4
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    Je ne suis pas sur d'avoir compris.

    ce que tu veux faire c'est une double jointure de tes données personne et resource ?
    A+JYT

    le grid est défini pour afficher un seul store. le groupedhead et fait pour grouper des colonne s'un même datastrore.

    le modèle maitre détail et conçu pour être utilisé avec plusieurs composants on pour afficher maitre l'autre détail.
    que ce soit des forms ou des grids.

    Extjs n'est pas fait pour croiser des données.
    je pense que tu dois crée un datastore qui contient toutes les colonnes que tu veux afficher.
    pour le remplir tu fais une jointure dans ta base.

    sinon le render semble être la bonne approche mais je n'ai jamais testé.
    dans les forum on trouve cette réponse
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    {
            text: "orderDescription",
            renderer: function(value,meta,record){//1.
           //var orderStore = record.orderStore;//2a.
           //var orderList = ordersStore.data.items;//2b.
           var orderList = record.orders().data.items; //3.This line is the same as 2 the lines above(2a,2b).
           var order = orderList[0]; //4. TODO..loop through your list. 
           var description = order.data.description; //5. 
           return description ;
     },
    pour les stores
    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
    Ext.define('AM.model.User', {
        extend: 'Ext.data.Model',
        fields: ['id', 'username', 'firstName', 'lastName', 'state', 'city'],
     
        associations: [
        {
                type: 'hasMany', 
                model: 'Order', 
                name: 'orders'
        },],        
    });
     
    Ext.define('AM.model.Order', {
        extend: 'Ext.data.Model',
        fields: ['id', 'userId', 'date', 'description', 'value'],    
        belongsTo: 'User',   
    });
    A+JYT

  5. #5
    Membre éclairé Avatar de fahdijbeli
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2012
    Messages : 281
    Par défaut
    merci d'abord pour le soutient, moi j'ai une autre idée voila ce que je veux faire:
    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
    {
                        text: "current",
                        id:'currentId',
                        renderer:function (value, metaData, record, rowIdx, colIndex ){
                            return record.data.Resource[(colIndex-6)/2].current;
                        },
                        editor:{
                            xtype:'numberfield',
                            listeners:{
                                change:{
                                    fn:function(me, newValue, oldValue, eOpts){
                                       //voila là je veux récuperer le record du store ou se  trouve le 'numberfield' pour que je puisse modifier l'élement current du store c'est comme je vais faire un dataIndex pour le colonne current.
                                    }
                                }
                            }
                        }
                    }
    là ou j'ai fait le commentaire si je peux récupérer le record du store il va résoudre mon problème, si c'est impossible est ce que y a t il un moyen de faire passer le record dans la colonne au son éditeur car je peux récupérer le record dans le renderer du colonne ?

    Merci

  6. #6
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var form = this.up('form').getForm();
    te retourne le formulaire
    la méthode getFields te retourne la liste des champs du formulaire
    il ne te reste qu'à modifier le champs de ton choix.

    lorsque le formulaire sera enregistré dans ton datastore tous les composants qui affichent un ou des élément du store seront rafraichis.

    A+JYT

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

Discussions similaires

  1. problème avec load data local
    Par afrikha dans le forum Débuter
    Réponses: 2
    Dernier message: 28/10/2005, 18h36
  2. Problème d'index avec load data file
    Par bruno782 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 09/03/2005, 12h11
  3. probleme avec "LOAD DATA INFILE" et les b
    Par Koo dans le forum Requêtes
    Réponses: 2
    Dernier message: 01/07/2004, 09h37
  4. Problème avec LOAD DATA INFILE
    Par ka0z dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 04/06/2004, 14h59
  5. insertion des blob avec LOAD DATA...
    Par orli1x51 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 27/10/2003, 18h05

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