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 :

Combobox et DataStore à plusieurs champs


Sujet :

Ext JS / Sencha

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 5
    Par défaut Combobox et DataStore à plusieurs champs
    Bonjour, voici mon problème :

    J'ai un combobox, lié à un datastore. Ce datastore contient le résultat d'une requête (avec id, nom, fabricant, usine, etc.).
    Dans le combobox, j'ai renseigné le paramètre displayField pour indiquer le nom du champs à afficher parmi ceux de la requête (ici le nom), ainsi que le paramètre valueField pour indiquer la valeur réelle (l'id).

    J'aimerai savoir s'il était possible d'afficher dans la combobox plusieurs champs (nom et fabricant par exemple).
    De plus j'aurai voulu savoir comment récupérer la valeur des autres champs pour l'item sélectionné, parce que value renvoit toujours l'id, mais j'aimerais bien aussi récupérer les autres valeurs (fabricant et usine)

    Voici le code de ma combobox et de son datastore :
    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
     
    var dataStoreProduit = new Ext.data.Store({
              id: 'dataStoreProduit',
              proxy: new Ext.data.HttpProxy({
                        url: 'database.php',      
                        method: 'POST'
                    }),
              baseParams:{task: 'LISTEPRODUITEXISTANT'},
              reader: new Ext.data.JsonReader({     
                root: 'results',
                totalProperty: 'total',
                id: 'id'
              },[
                {name: 'IdProduit', type: 'int', mapping: 'IdProduit'},
                {name: 'NomProduit', type: 'string', mapping: 'NomProduit'},
                {name: 'IdNatureProduit', type: 'int', mapping: 'IdNatureProduit'},
                {name: 'NomFabricant', type: 'string', mapping: 'NomFabricant'},
                {name: 'NomUsine', type: 'string', mapping: 'NomUsine'}
                ]),
              sortInfo:{field: 'NomProduit', direction: 'ASC'}
            });
     
            var cbProduit = new Ext.form.ComboBox({
                            id: 'cbProduit',
                            typeAhead: true,
                            width: $width,
                            triggerAction: 'all',
                            allowBlank: true,
                            store:dataStoreProduit,
                            mode: 'local',
                            displayField: 'NomProduit',
                            valueField: 'IdProduit',
                            lastQuery: '',
                            listClass: 'x-combo-list-small'
                            });

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 5
    Par défaut
    Bon je viens à l'instant de trouver une solution au problème d'affichage des différentes données en utilisant l'attribut tpl.
    Par contre je n'ai toujours pas trouvé la méthode qui permet de récupérer les différents champs autres que le valueField pour l'item sélectionné

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 5
    Par défaut
    Bon, après de longues heures de labeur, j'ai enfin trouvé comment accéder aux autres champs de la combobox.
    La ligne magique est donc dans mon cas:

    cbProduit.findRecord('IdProduit', cbProduit.getValue()).get('NomFabricant')

    Pour obtenir le nom du fabricant de l'objet sélectionné.

    Sujet résolu.

  4. #4
    ovh
    ovh est déconnecté
    Rédacteur
    Avatar de ovh
    Homme Profil pro
    Architecte devops web full stack
    Inscrit en
    Mai 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte devops web full stack

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 842
    Par défaut
    Tout à fait c'est le piège principal d'extjs : ne jamais utiliser les id ! Il faut laisser extjs les générer dynamiquement, sinon dès que tu utilises un même composant plusieurs fois, ça fait n'importe quoi
    En fait définir ses id n'est utile que si tu as besoin d'appeler tes composants avec Ext.getCmp() mais en pratique il vaut mieux utiliser plutôt la propriété itemId pour ce genre de cas.

    Tutoriels sur les UPS, e-commerce, PHP, critiques de livres...

    Pensez à consulter les FAQs et les cours et tutoriels.
    FAQ Linux - Cours et tutoriels Linux - FAQ PHP - Cours et tutoriels PHP
    Ce forum est fait pour vous et surtout par vous, merci d'en respecter les règles.

    Je n'ai rien à voir avec la société www.ovh.com !

Discussions similaires

  1. Réponses: 1
    Dernier message: 28/03/2014, 23h42
  2. Recherche d'un mot avec LIKE sur plusieurs champs
    Par reynhart dans le forum Langage SQL
    Réponses: 16
    Dernier message: 26/11/2004, 17h41
  3. [CR] Groupement dynamique sur plusieurs champs paramètrés
    Par CDRIK dans le forum SAP Crystal Reports
    Réponses: 8
    Dernier message: 07/06/2004, 17h55
  4. recuperer les id sur plusieurs champs
    Par matN59 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 15/03/2004, 10h23
  5. [CR9] Plusieurs champs dans details
    Par maxxou dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 28/01/2004, 13h35

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