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 :

Gridpanel en fonction d'un Treepanel


Sujet :

Ext JS / Sencha

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 12
    Par défaut Gridpanel en fonction d'un Treepanel
    Bonjour,

    Je commence a travailler sur EXTJS. J'ai un treepanel et un grid. J'ai besoin d'afficher un résultat dans le grid diffèrent selon l'endroit où l'on se trouve dans l'arbre. Pour eclairer un peu plus mon discours voici mon code.

    Construction de l'arbre (mon fichier .js):

    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
    var Tree = Ext.tree;
     
        var tree = new Tree.TreePanel({
            useArrows: true,
            autoScroll: true,
            animate: true,
            enableDD: true,
            containerScroll: true,
            border: false,
            // auto create TreeLoader
            dataUrl: '../action/tree_action.php?action=getFolderList',
     
           root: {
                nodeType: 'async',
                text: 'ABYLSEN',
                draggable: true,
                id: 'src'
            }
        });
    tree.render('tree-div');
    Mon fichier PHP (fichier action .php):

    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
    function getFolderList() {
     
    	$db = new Database();
    	$t_node = gprs_get("node");
     
    		if($t_node == "src")
    		{
    		$nb_rows = $db->select("SELECT * FROM dossier WHERE id_parent = 0");
            }
            else
            {
            $nb_rows = $db->select("SELECT * FROM dossier WHERE id_parent = $t_node");
            }      
    	        if($nb_rows>0)
    	        {
    	        echo '[';
    	        	while($row = $db->next_row())
    		        {
    				echo '{"text" : "'.$row['libelle'].'",';
    		   		echo '"id": "'.$row['id'].'",';
    		   		echo '},';
    		        }
    	        echo ']';
    	        }else
    	        {
    	        	$db2 = new Database();
    	        	$nb_rows2 = $db2->select("SELECT * FROM dossier_content WHERE id_dossier = $t_node");
    	        	while($row2 = $db2->next_row())
    		        {
    				echo 'id_person : "'.$row2['id_person'].'",';
    		   		echo 'id_dossier : "'.$row2['id_dossier'].'",';
    		        }
    	        }      	
    }
    la fonction renvoie les differents noeuds dans le dataURL de mon fichier php, et quand le $nb_row < 0 (feuille), c'est la que je renvoie id_person et id_dossier. Ce sont une de ces 2 valeurs que je souhaite recuperer dans mon .js afin de les renvoyer en parametre pour creer un grid different.
    Avez-vous des idées? c'est mon premier post alors soyez indulgent ;-)
    Merci d'avance.

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2010
    Messages
    267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 267
    Par défaut
    bonjour,

    le dataUrl permet simplement de charger ton arbre ... ce n'est donc pas la peine de faire un cas kan ton nb_row est inf à 0 ...

    dans ton tree, tu rajouteras un event sur le clic d'un element de ton arbre. Dans cette event tu récupéras tes id pour mettre a jour ton grid (avec la fonction load ou reload ...).

    par rapport à tes deux id (personne et dossier), tu as deux solutions:
    - soit tu fais un appel ajax (ca te prends 300 ms par appel)
    - soit tu créées un objet store avec tous tes id ... et tu récupère les infos en fonction du noeud de ton arbre, et c'est instantané ...

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 12
    Par défaut
    Re

    En effet, le cas avec nb_row n'est pas nécessaire.


    J'ai regardé les events de nœud et j'ai réfléchit a quelque chose comme ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    tree.on('click', function(n){
    	store.load({params:{id:n.id}});
    })
    Merci pour ta réponse si rapide, tu m'a éclairé dans ma réflexion.
    Si tu as besoin d'un truc demande moi. a bientôt

Discussions similaires

  1. Réponses: 8
    Dernier message: 12/02/2013, 01h08
  2. DnD depuis un treePanel vers un gridPanel
    Par prince418 dans le forum Ext JS / Sencha
    Réponses: 0
    Dernier message: 06/02/2013, 14h00
  3. Implémentation des fonctions mathématiques
    Par mat.M dans le forum Mathématiques
    Réponses: 9
    Dernier message: 17/06/2002, 16h19
  4. fonction printf
    Par ydeleage dans le forum C
    Réponses: 7
    Dernier message: 30/05/2002, 11h24
  5. FOnction api specifiant la position de la souris
    Par florent dans le forum C++Builder
    Réponses: 4
    Dernier message: 15/05/2002, 20h07

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