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 :

[TreeGrid/Ajax] Charger dynamiquement les noeuds de l'arbre


Sujet :

Ext JS / Sencha

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    802
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 802
    Points : 653
    Points
    653
    Par défaut [TreeGrid/Ajax] Charger dynamiquement les noeuds de l'arbre
    Bonjour,

    J'ai un treegrid qui charge actuellement toute l'arborescence dès la première requête.

    Je voudrais que l'arbre soit replié, et que l'arborescence soit chargée partiellement uniquement lorsqu'on ouvre un noeud. On chargerait donc uniquement les noeuds enfants placés directement sous le noeud ouvert.

    Voici actuellement ce que je fais :
    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
     
        var store = Ext.create('Ext.data.TreeStore', {
            //autoLoad: true,
            //autoSync: true,
            model: 'Task',
            proxy: {
                type: 'ajax',
                url: 'data/treegrid.json',
                reader: {
                    type: 'json'
                },
                writer: {
                    type: 'json'
                }
            },
            folderSort: true
        });
    En cherchant un peu sur Internet, il semble que l'approche est bonne, mais il manque une chose, me semble-t-il : quels paramètres sont passés au serveur pour lui dire le noeud qu'il doit charger.
    J'ai une resource côté serveur qui pointe sur l'url : data/treegrid.json, mais actuellement, à défaut de savoir quel noeud doit être chargé, j'envoie toute l'arborescence.
    Quels sont les paramètres envoyés par ExtJS, et sur quoi se base ExtJS pour constituer ces paramètres ?

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    802
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 802
    Points : 653
    Points
    653
    Par défaut
    Finalement j'ai trouvé la solution à mon problème en tatonant.

    En fait, ce n'est pas au niveau du JS qu'il faut faire des modifs mais au niveau du serveur. Il faut que le serveur envoie dans les données JSON un attribut 'id' pour chaque noeud. Ainsi, lorsqu'un noeud est déplié, une requête GET est envoyé au serveur avec le paramètre 'id' qui lui aura été préalablement envoyé.

    Sinon, la configuration ci-dessus est la bonne.
    Voilà, en espérant que cela pourra aider quelqu'un.

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

Discussions similaires

  1. [2.x] Charger dynamiquement les éléments d'un menu dans un layout
    Par Jiraiya42 dans le forum Symfony
    Réponses: 1
    Dernier message: 28/08/2011, 23h51
  2. Réponses: 3
    Dernier message: 16/06/2010, 10h19
  3. Comparer les noeuds de deux arbres.
    Par p1xl_01 dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 04/02/2010, 14h00
  4. Charger dynamiquement les fichiers i18n
    Par fred2.0 dans le forum Struts 1
    Réponses: 3
    Dernier message: 23/10/2009, 14h56
  5. [AJAX] Div dynamique AJAX. Sous IE, les images ne s'affichent pas
    Par N3odyme dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 10/12/2006, 20h56

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