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 :

selectionner une colone dans une grid


Sujet :

Ext JS / Sencha

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre extrêmement actif
    Avatar de lilington
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 681
    Par défaut selectionner une colone dans une grid
    bonjour tout le monde.

    voila, jai une gride et au chargement de la page j'aimerai selectionner une ligne par example la premiere. alors voici ce que je fait
    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
     
      var grid_customer=new Ext.grid.GridPanel({
            store:store_customer,
            border: false, 
            region: 'center',
            title: 'liste client',
            loadMask: true,
     
     
            columns: [
                new Ext.grid.RowNumberer(),
                { header: 'client', dataIndex: 'abbv', sortable: true,width:100 },
                { header: 'contact', dataIndex: 'contactor', sortable: true,width:100 }, 
                { header: 'id', dataIndex: 'id', hidden: true }
            ],
            sm: new Ext.grid.RowSelectionModel({
                singleSelect: true,
                listeners: {
                    rowselect: function(sm, row, rec) {
                        searched=false;
                        customerId=rec.get('id');          
                        store_address.proxy=new Ext.data.HttpProxy({
                            url: './address_management_ajax.php?cmd=getAddressByCustomerId&customerId='+customerId
                        })
                        store_address.load();
                        var a =grid_address.getTopToolbar();            
                        a.get('add_addr').enable(true);                    
     
                        init_search();               
                        onLandmarkModified("",customerId);  
                    }
                }
            }),
            listeners:{
                afterrender:function(){
     
                    alert(grid_customer.getStore().getCount());
                    //grid_customer.getSelectionModel().selectRow(grid_customer.getStore().find('id',<?php echo $_GET['customerId']; ?>));
                }
            }
        });
    le probleme avec ce code c'est que le alert() me donne toujours 0 et regardant de pres je constate que afterrender intervient apres le rendu de la grid mais avant le rendu du contenu.

    ma question est ou puis-je/dois-je ecrire mon alert pour obtenir le nombre d'enregistrement de la grid?
    merci de votre patience.

  2. #2
    Membre actif
    Inscrit en
    Novembre 2006
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 129
    Par défaut
    Tu devrais plutôt traiter ça dans le store, en écoutant l'événement "load".

    En plus, l'événement "load" te fournira directement en deuxième paramètre les enregistrements de ta grille.

    ++

  3. #3
    Membre extrêmement actif
    Avatar de lilington
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 681
    Par défaut
    Merci mais ca ne m'arrange pas de traiter depuis le store, je m'explique.
    en faite quand l'utilisateur clique sur une ligne il y a une serie d'evenement qui s'enchaine, le sm que j'ai pas mis. ce qui ce passe c'est que quand on clique sur un client dans la liste il fait apparraitre sa liste d'adresses dans une autre gride puis quand on clique sur une addresse elle apparait sur la carte.
    ce que je veux faire c'est:
    depuis une autre page en cliquand sur le boutton voir la position on est lance automatiquement vers cette page et le bon client est selectionne et la premiere adresse de la liste l'est aussi.
    actuellement je tombe sur la page mais j'arrive pas a selectionner une ligne des le chargement afin que le reste s'enchaine seul.

  4. #4
    Membre actif
    Inscrit en
    Novembre 2006
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 129
    Par défaut
    oui, y a pas de problème, tu laisses la gestion de la seléction de ligne dans le RowSelectionModel, seulement au lieu de faire ton grid_customer.getSelectionModel().selectRow() dans le listener de afterrender de la grid, tu le fais dans le listener de load du store.

    Il n'y a pas d'alternative, puisque ta grille ne "sait" pas quand les données sont chargées, seul le store en a connaissance. et c'est pas parce que la grille est "rendue" (afterrender) que les enregistrements sont chargés dans le store.

    ++

  5. #5
    Membre extrêmement actif
    Avatar de lilington
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 681
    Par défaut
    oui ca marche mais en faite bien que j'ai mis résolu le problème ne l'est pas vraiment. ce que tu as dit m'a permit de réaliser que j'avais un autre problème.
    en faite quand je fait ce que tu as dit, soit lancer la sélection d'une ligne depuis le store, j'ai bien une ligne de la grid sélectionné mais l'enchainement d'évènement s'arrête.
    la faute tout simplement au dernier évènement qui est le positionnement sur la carte. en effet, quand mes stores sont chargés etc... la carte ne l'est pas encore or dans le grid c'est l'evement load qui declenche la selection, dans la selection d'autre store sont charger (et ils se chargent bien) et l'affichage sur la carte est appelé.
    c'est justement la que sa coinse car l'appelle de la fonction qui dessine sur la carte est un appelle a une API qui est sur le site fournisseur des cates soit mapabc.com (en chine) donc j'ai une erreur qui dit que la fonction n'existe pas.
    mais apres que tout soit charge, si je selection une ligne cette fois ca marche car la carte est bien charge donc l'api l'est aussi.

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

Discussions similaires

  1. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 13h35
  2. portée d'une variable dans une fonction dans une méthode
    Par laurentg2003 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/06/2009, 19h05
  3. [POO] dans une classe, appeler une fonction dans une méthode
    Par arnaudperfect dans le forum Langage
    Réponses: 3
    Dernier message: 26/08/2007, 23h04
  4. Envoyer une formulaire dans une page dans une Frame
    Par zooffy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 29/06/2007, 10h13
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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