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 :

extJS4, Grid, rowexpander et fichier JSON ?


Sujet :

Ext JS / Sencha

Vue hybride

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 624
    Par défaut extJS4, Grid, rowexpander et fichier JSON ?
    Bonjour à tous,

    J'ai un problème avec l'affichage d'un rowexpander dans un Grid.
    Je ne comprends pas pourquoi j'ai ce problème?!
    La première ligne s'affiche bien (enfin presque puisqu'il y a le + sur 2 lignes et l'expand ne fonctionne pas non plus ) et ensuite c'est la cata tout est décalé dans les colonnes!
    Nom : grid+erreur.jpg
Affichages : 138
Taille : 188,9 Ko


    Mon fichier JSON:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Ext.data.JsonP.callback1({"success":true,"total":30,"rows":[{"pn":"CN101700810B","pd":"2013-03-13T23:59:59Z","tien":["Boeing and Airbus aircraft audio management unit test adapter"]},{"pn":"CN202574632U","pd":"2012-12-05T23:59:59Z","tien":["Mobile maintenance and testing platform for airbus series aircraft driver seat"]},{"pn":"CN202270361U","pd":"2012-06-13T23:59:59Z","tien":["Aeromodel of airbus"]},{"pn":"CN202225867U","pd":"2012-05-23T23:59:59Z","tien":["Airbus"]}.........]});
    Mon store est tout simple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Ext.define('PP.store.pxxxx.Pxxxxs', {
        extend:     'Ext.data.Store',
        model:      'PP.model.pxxxx.Pxxxx',
        autoLoad:   false
    });
    Mon Model:
    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
    22
    23
    24
    25
    26
    Ext.define('PP.model.pxxxx.Pxxxx', {
        extend:     'Ext.data.Model',
        fields: [
            // Données de base
            {name: 'pn',    type: 'string'},
            {name: 'fid',   type: 'string'},
            {name: 'pd',    type: 'date', convert:function(v,record) { return Ext.Date.format(new Date(v), 'Y-m-d'); }},
     
            {name: 'tien',  type: 'string'},
        ],
        proxy: {
            type:   'jsonp',
            url:    'http://xxxxx/pp/search.php',
     
            reader: {
                type:           'json',
                totalProperty:  'total',
                root:           'rows'
            }
     
        },
        sorters: [{
            property:  'pd',
            direction: 'DESC'
        }]    
       });
    Je récupère bien le totalProperty, et les autres valeurs, bref j'avoue que je sèche alors si vous avez une idée je suis preneur !
    En attendant je continue mon investigation....

    ah oui et voici ma vue!


    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
    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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    Ext.define('PP.view.patent.MyPGrid', {
        extend: 'Ext.grid.Panel',
        alias:  'widget.mypgrid',
     
        id:     'mypgrid',
        xtype:  'row-expander-grid',
        region: 'center',
        border: false,
        //padding:        '1 1 1 1',
     
        initComponent: function() {
            var me = this;
            Ext.applyIf(me, {
                store: 'PP.store.pxxxx.Pxxxxs',                  
                loadMask: true,
                columnLines: true,
                enableLocking: true,
                dockedItems: [{
                                xtype: 'toolbar',
                                dock: 'bottom',
                                items: [
                                        {
                                            xtype : 'button',
                                            text: 'Expand all Rows',
                                            action: 'expand'
                                        },
                                        {
                                            xtype: 'tbseparator'
                                        },
                                        {
                                            xtype : 'button',
                                            text: 'Collapse all Rows',
                                            action: 'collapse'
                                        }
                                        ]
                                }],
                plugins: [{
                            ptype: 'rowexpander',
     
                            rowBodyTpl : new Ext.XTemplate(
                                '<p><b>PN:</b> {pn}</p>',
                                '<p><b>Abstract:</b> {tien}</p>'
                            )//,
     
                            //expandOnRender: true,
                            //expandOnDblClick: false
                }],
                //collapsible: true,
                //animCollapse: false,
                //title: 'Expander Rows in a Collapsible Grid with lockable columns',
                //iconCls: 'icon-grid',
                margin: '0 0 20 0',
     
                columns: [
                    {
                        header:       'PN',
                        dataIndex:  'pn'
                    },{
                        header:       'Title',
                        flex:       1,
                        dataIndex:  'tien'
                    },{
                        header:       'Pud. Date',
                        dataIndex:  'pd'
                    }
                ]
            });
            me.callParent(arguments);
        }
    });

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    624
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 624
    Par défaut
    Petite précision qui a je pense son importance, si je mets en commentaire la partie plugins du rowexpander alors j'ai bien ma grille qui s'affiche proprement, une ligne par enregistrement JSON....

    Autre précision je suis en ExtJS4.2.1.883

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    624
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 624
    Par défaut
    Bien, j'ai simplifié ma view et maintenant cela fonctionne parfaitement !

    j'ai simplement repris l'exemple de sencha et surtout enlevé le initComponent !

    http://docs.sencha.com/extjs/4.2.1/e...-expander-grid

  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
    c'est ce que je disais cet aprem à un collègue

    la solution enlever du code
    il m'a répondu
    Sencha est un concours à celui qui fera le moins de code.

    A+JYT

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    624
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 624
    Par défaut
    C'est sûr !

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

Discussions similaires

  1. [AJAX] lecture fichier json distant
    Par 4R416N33 dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 08/06/2008, 20h01
  2. Création de fichier json avec PHP
    Par versus68 dans le forum Langage
    Réponses: 1
    Dernier message: 02/06/2008, 11h56
  3. [AJAX] recupérer plusieur fichiers JSON
    Par Emcy dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 04/10/2007, 14h41
  4. structure fichier JSON
    Par Emcy dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 15/03/2007, 08h51
  5. [AJAX] Récupération d'un fichier JSON avec javaScript
    Par guerin dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 26/11/2006, 19h05

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