J'utilise l'élément FilteringSelect de dojo sur un formulaire Zend, mais je n'arrive pas à le faire fonctionner comme je le souhaite. J'ai un magasin avec trois champs id
, label
, name
. L'étiquette sera utilisée pour la liste déroulante et devra également sera utilisé pour la recherche, tandis que name
doit être utilisé pour l'affichage à l'intérieur de la boîte. Le problème est que je n'arrive pas à trouver un moyen de faire fonctionner ce comportement.
Fixer le labelAttr
à la valeur label
fonctionne en l'affichant dans la liste déroulante, mais l'option searchAttr
régit à la fois la recherche ET l'affichage dans la zone de saisie une fois qu'une valeur est sélectionnée. J'ai besoin d'effectuer une recherche dans le label
puisqu'il s'agit d'une collection de plusieurs champs, mais afficher la valeur sur name
Est-ce possible ?
EDIT : @RichardAyotte Le widget Dijit FilteringSelect utilise un dojo.data.store, qui est en fait un objet javascript, où chaque élément est également un objet avec de nombreux paramètres. Vous pouvez définir deux paramètres spéciaux sur le magasin : labelAttr y searchAttr qui définira un certain nombre de comportements. Le FilteringSelect est lié à une boîte INPUT dans laquelle vous pouvez effectuer une recherche. Si vous cliquez sur la boîte, la liste d'options s'ouvrira, comme dans le cas d'un serait. Ici, il montre ce que vous avez défini comme labelAttr. Maintenant, si vous tapez sur la boîte, il y aura recherche sur le magasin, en utilisant ce qui est défini sur le site de l searchAttr champ. Il a également utilisé la valeur de l'étiquette à afficher dans le champ de saisie une fois que vous avez sélectionné quelque chose dans la liste (vous pouvez le vérifier ici). http://dojotoolkit.org/reference-guide/1.9/dijit/form/FilteringSelect.html#displaying-rich-text-menu-labels-with-labelattr-and-labeltype )
Ce que je voulais faire, c'est "découpler" la searchAttr en deux champs différents, l'un pour la recherche et l'autre pour l'affichage dans l'entrée. AFAICT ce n'est pas possible cependant, et je vais devoir étendre l'objet FilteringSelect.