Extjs4 grid-editor remote combobox displayValue
Habe ich ein raster mit einigen Spalten werden bearbeitet. Eine der Spalten, die geändert werden soll über eine combobox. Der Kombinationsfeld-store, remote-und Schlüssel-Wert-paar Typ:
['id', 'title']
Combobox valueField ist id und der displayValue ist der Titel. Wenn eine Zelle bearbeitet meine combobox lädt der store, der displayValue ausgewählt ist und das valueField ist zurückgekehrt, um die grid-editor. Also die Zelle ist dann gefüllt mit den valueField.
Meine Frage ist: wie bekomme ich die Zelle zu Rendern, displayValue? Nur wählen Sie es aus dem laden ist nicht gut genug, da das Rendern geschieht, bevor der Speicher geladen wird. Mein code jetzt (das funktioniert mit lokalen Geschäften nur):
{
header: 'Column title',
dataIndex: 'id',
displayField: 'title',
editor: {
xtype: 'combo',
valueField: 'id',
store: 'myStore',
displayField: 'title'
},
renderer: function(value) {
//How do I find the editors combobox store?
store = new myStore();
index = store.findExact('id', value);
if (index != -1) {
rs = store.getAt(index).data;
return rs.title;
}
return value;
}
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist, wie ich es gemacht habe:
Ich habe 2 Shops, storeA für die Netz-und storeB für den Wert ausgewählt werden (wie oben beschrieben). Beide Läden haben eine ID von storeB.
Ich landete hinzufügen eines Felds zu storeA - Titel für storeB ID. Und im Netz habe ich diesen Titel als eine ausgeblendete Spalte. Und in der combobox-editor, Spalte ich mit diesem renderer:
Auf dem grid ich habe einen listener für das Ereignis Bearbeiten aktualisieren Sie die Spalte mit der überschrift mit dem Titel aus der combobox:
Hoffe, dies hilft jemand anderes!
In Ihrem Modell Definitionen, was ist der Typ von "id". Wenn Sie definieren, wie 'int', haben Sie zu:
Wert ist nicht der einzige parameter, der übergeben der renderer siehe docs:
http://docs.sencha.com/ext-js/4-0/#!/api/Ext.grid.Spalte.Spalte-cfg-renderer
Hier ist die Antwort, bringt das combo-store in den Bereich der renderer:
http://jsfiddle.net/WRXcw/3/