extjs 4 Comment aussi de garder la zone de liste déroulante dans la cellule de la grille
J'ai vu les mêmes questions sans réponse d'ailleurs. Je veux avoir une liste déroulante dans une colonne avec deux options (ASC, DEC) en elle. Je veux qu'il s'affiche dans chaque ligne, ou tout au moins de sa valeur s'affiche quand il n'est pas sélectionné.
Je sais que ce n'est pas une "bonne idée" de rendre une zone de liste déroulante dans chaque ligne, mais dans ce cas, je sais que je vais avoir un maximum d'environ 20 lignes, donc il ne devrait pas être une affaire énorme. Si cela ne peut pas être fait, je veux avoir la valeur sélectionnée dans la liste déroulante afficher. Actuellement je viens de le comboboxes apparaissant lorsque je clique sur une ligne, qui n'a pas beaucoup de sens puisque vous ne pouvez pas voir votre sélection à moins que vous créez. Quelle est la solution?
Aussi, je veux me débarrasser de la modifier et annuler les boutons qui apparaissent lorsque je clique sur une ligne, je veux juste être en mesure de modifier la cellule avec la zone de liste déroulante, et qu'automatiquement modifier/enregistrer.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez définir une valeur par défaut pour le
combo
.Que devriez alors obtenir que rendus au démarrage.
Utilisation de cellules
renderer
àrender
ladisplayField
de lacombo
dans votre grille. Suivant un exemple de travail qui peut être poster dans l'une des API de boîtes de code.De travail JSFiddle
code
moteur de rendu: function (valeur, les métadonnées, d'enregistrement, de rowIndex, colIndex, magasin) { if (valeur == ") return ";code
var combo = ce.les colonnes[colIndex].getEditor(); var sto = Ext.getStore(combo.magasin); var idx = sto.trouver(combo.valueField, valeur); var rec = sto.getAt(idx); return (rec === null || rec === undefined ? ": rec.get(combo.displayField)); }