In love des listes déroulantes

In love des listes déroulantes - HTML/CSS - Programmation

Marsh Posté le 25-03-2008 à 17:38:27    

Comme je suis bien manchotte de la prog, je bloque sur une connerie :
j'ai une liste fixe. Je veux faire une combo box à partir d'icelle.
en ExtJs.
 
Et là, c'est le drame.
dans un premier .js j'ai ma liste:

Code :
  1. var orientationData = [
  2.     'Nord',
  3.     'Sud',
  4.     'Est',
  5.     'Ouest'
  6. ];
  7. var orientationStore = new Ext.data.SimpleStore({
  8. fields:['versou'],
  9. data : orientationData
  10. });


dans un autre plus tard, je fais une combobox l'appelant :

Code :
  1. var comboOrientation = new Ext.form.ComboBox({
  2.  store : orientationStore,
  3.  name : 'orientationChoisie',
  4.  width : 180,
  5.  displayField : 'versou',
  6.  selectOnFocus : true,
  7.  editable : true,
  8.  triggerAction : 'all',
  9.  emptyText : '...',
  10.  typeAhead : true
  11. });


 
mais non, ça ne veut pas, j'ai oublié quoi ?
 
pour savoir si ça venait exactement de là, j'ai fait le test de virer le code et effectivement, sans tout a un comportement normal ^^
 
(help !)


Message édité par stitch+ le 13-06-2008 à 11:52:57

---------------
viendez broder, mon blog et à écouter : la Pause Bad, parlons badminton
Reply

Marsh Posté le 25-03-2008 à 17:38:27   

Reply

Marsh Posté le 26-03-2008 à 12:51:09    

je me suis aidée moi même :
 

Code :
  1. mode :'local'


---------------
viendez broder, mon blog et à écouter : la Pause Bad, parlons badminton
Reply

Marsh Posté le 27-03-2008 à 10:58:32    

oui en effet, quand je fais un combobox, je rajoute a chaque fois cet option mais je ne sais pas à quoi ca sert. J'ai pas trouvé de doc sur l'api sur cette option. Tu sais a quoi ca sert ?

Reply

Marsh Posté le 27-03-2008 à 12:49:19    

weed a écrit :

oui en effet, quand je fais un combobox, je rajoute a chaque fois cet option mais je ne sais pas à quoi ca sert. J'ai pas trouvé de doc sur l'api sur cette option. Tu sais a quoi ca sert ?


si tu ne vas pas "chercher"/construire ta liste sur le serveur, quand elle est "en dur" dans tes scripts
alors tu dois lui dire que c'est 'local'
 
PS : si quelqu'un qui maitrise mieux le vocable me reformule, ça ne serait pas un mal.


---------------
viendez broder, mon blog et à écouter : la Pause Bad, parlons badminton
Reply

Marsh Posté le 27-03-2008 à 13:57:45    

Euh, je pense qu'en effet ca doit etre autre chose.  
 
Dans ton cas, ton datastore, orientationData, est un SimpleStore. Tu as donc en effet mis en dur le nom de tes champs. Cependant tu peux toujours utiliser un JsonReader, XmlReader, ArrayReader qui vont te permettre de recuperer les informations dynamiquement d'un serveur AVEC l'option : mode: 'local'

Reply

Marsh Posté le 27-03-2008 à 14:02:13    

quand je vais piocher dans le serveur pour construire mes datastores je ne mets pas le mode 'local' et ça se passe normalement


---------------
viendez broder, mon blog et à écouter : la Pause Bad, parlons badminton
Reply

Marsh Posté le 27-03-2008 à 14:17:01    

dans tous les cas, je le mets. Dans ce cas, c'est optionnel quand ce n'est pas du SimpleStore et obligatoire quand ca l'est :)

Reply

Marsh Posté le 28-03-2008 à 17:42:06    

tiens, tant que j'y suis, quand les listes déroulantes ne font pas la bonne largeur, bien plus courte que la combobox surtout,
la solution que j'utilise :
dans la définition du  new Ext.Panel
  hideMode : 'offsets'


---------------
viendez broder, mon blog et à écouter : la Pause Bad, parlons badminton
Reply

Marsh Posté le 13-06-2008 à 11:52:37    

question sur les comboboxs-mes-amours

 

J'ai une liste déroulante pour choisir un correspondant,
le store de la liste déroulante est mon annuaire (plus de 800 personnes)

 

je veux que le correspondant appartienne à ma liste
pour faciliter la saisie, il faut que l'utilisateur puisse saisir les premières lettres du nom

 

actuellement ma combo est définie ainsi :

 
Code :
  1. ComboAnnuaire = new Ext.form.ComboBox({
  2. width : 180,
  3. store : storeAnnuaire,
  4. displayField : 'nom',
  5. forceSelection : true,
  6. // editable : false,
  7. typeAhead : true,
  8. typeAheadDelay : 350,
  9. mode : 'local',
  10. triggerAction : 'all',
  11. selectOnFocus : true,
  12.         allowBlank : false
  13. name : 'correspondant'
  14. })


Le paramètre forceSelection (True to restrict the selected value to one of the values in the list) est sensé faire ce que je demande mais non, on peut quand même écrire un nom qui n'est pas dans la liste et quitter le champ sans que cela le passe à vide ou au choix le plus proche dans la liste.

 

J'ai donc voulu mettre editable à false
et là, ça bloque le selectOnFocus (True to select any existing text in the field immediately on focus. Only applies when editable = true (defaults to false))
J'ai alors 2 comportements : pas moyen d'écrire dans le champ ou si je peux écrire, ça ne recherche pas le contact dont le nom commence par ce que j'écrit


Message édité par stitch+ le 13-06-2008 à 11:53:19

---------------
viendez broder, mon blog et à écouter : la Pause Bad, parlons badminton
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed