2012-02-16 2 views
0

J'ai un combo avec des noms - chacun avec un identifiant unique qui n'est pas affiché - juste le nom est rendu.extJS combobox setValue() mais ID poste

Lorsque je sélectionne manuellement à partir du combo et soumettre - le formulaire POST est l'ID du nom qui est parfait.

Cependant, je besoin de définir dynamiquement la valeur du combo sous certaines circonstances et faire en appelant setValue (« Nom »), mais quand je poste la valeur d'identité vient comme le nom de chaîne définie par setValue()

Comment puis-je définir le nom (ou l'ID) mais POSTER l'ID et afficher le nom dans le combo?

J'ai essayé d'appeler setRawValue() en passant l'ID dans l'espoir le contrôle se traduirait et montrer la forme textuelle -. Mais pas de dés :(

Répondre

0

Vous avez setValue() et setRawValue() arrière Utilisez setValue('id') pour définir la valeur combobox , il doit mettre à jour automatiquement la valeur d'affichage si vous utilisez un moteur de rendu dans la configuration combobox.

Pensez setRawValue() comme setDisplayValue().

+0

Je dois mettre en œuvre un moteur de rendu personnalisé? Mais qui provoque toujours le textfiel d pour montrer l'identifiant du nom. EDIT | Correction cela semble fonctionner sauf sur le setValue initial(). La première fois que je définis dynamiquement la valeur de l'ID est affiché dans le champ de texte - chaque fois après cela, il fonctionne magnifiquement. J'utilise 3.2.1 - Je me demande si c'est un bug ou si je n'ai pas implémenté un moteur de rendu dans la configuration comme vous le suggérez - à quoi cela ressemblerait-il? –

+0

Je ne savais pas que ce n'était pas 4.x. Vous n'avez peut-être pas besoin d'implémenter un moteur de rendu personnalisé, j'étais parce que j'utilisais des combos dans un panneau de grille d'éditeur, le moteur de rendu était pour ça. Probablement la raison pour laquelle il ne se charge pas la première fois est que le combo n'a pas encore chargé le magasin. Je ne suis pas très familier avec 3.2.1, mais si j'essayais de définir la valeur immédiatement dans 4.x, je mettrais le magasin combobox à 'autoload: true', puis je mettrais l'appel' setValue() 'initial à l'intérieur d'un rappel. – Geronimo

+0

Semble avoir fait le tour ... très bizarre j'aurais juré que j'avais autoLoad: vrai là-bas quelque part. Anycase merci beaucoup :) –