Extjs mvc-Datensatz hinzufügen to grid panel
zuerst dachte ich, es ist ein einfaches problem, aber ich konnte nicht, lösen Sie es trotzdem.
Ich habe ein extjs gridpanel, Ihrem Geschäft und Modell. Von der Steuerung, ich kann das einfügen neuer Datensätze zu speichern, wenn ich mit firebug und zu Debuggen, kann ich eine Liste aller neuen Datensätze in den speichern (Bedienfeld.store.Daten.Elemente) jedoch in der gridview kann ich nicht sichtbar machen.
Könnten Sie mir bitte sagen, wo und was ich bin fehlt? Warum werden die Datensätze nicht in der Startaufstellung?
Dies ist mein Modell
Ext.define('BOM.model.PaketModel', {
extend: 'Ext.data.Model',
fields: [
{ name: 'seriNo', type: 'string' },
{ name: 'tutar', type: 'string' },
]
});
Dies ist store
Ext.define('BOM.store.PaketStore', {
extend: 'Ext.data.Store',
model: 'BOM.model.PaketModel',
proxy: {
type: 'memory',
reader: {
type: 'json',
root: 'data',
},
writer: {
type: 'json',
root: 'data',
},
},
});
Dies ist die Methode, die ich hinzufügen neuer Zeilen
addNew: function () {
this.getPaketWindow().returnRowEdit().cancelEdit();
this.getPaketWindow().getStore().insert(0, new BOM.model.PaketModel());
this.getPaketWindow().returnRowEdit().startEdit(0, 0);
}
"ANSICHT AKTUALISIEREN"
Ext.define('BOM.view.PaketCreate', {
extend: 'Ext.grid.Panel',
alias: 'widget.paketcreate',
bodyPadding: 5,
layout: 'fit',
header:false,
initComponent: function () {
this.columns = [
{ text: 'Seri No', flex: 2, sortable: true, dataIndex: 'seriNo', field: {xtype: 'textfield'} },
{ text: 'Tutar', flex: 2, sortable: true, dataIndex: 'tutar', field: {xtype: 'textfield'} }
];
this.dockedItems = [{
xtype: 'toolbar',
items: [{
text: 'Ekle',
id:'addNewCheck',
iconCls: 'icon-add',
},'-',{
id: 'deleteCheck',
text: 'Sil',
iconCls: 'icon-delete',
disabled: true,
}]
}];
this.store = 'BOM.store.PaketStore';
rowEditing = Ext.create('Ext.grid.plugin.RowEditing', {
clicksToMoveEditor: 1,
autoCancel: false
});
this.plugins = rowEditing,
this.callParent(arguments);
},
returnRowEdit: function () {
console.log("row editing...");
return rowEditing;
}
});
var rowEditing;
- hinzufügen Sie können die
view
code? - Ich aktualisierte mit code anzeigen
- Ich habe das problem gefunden, aber ich habe keine Erklärung dafür. diese.getPaketWindow() gibt die Ansicht, und ich konnte den Speicher zugreifen, diese mit.getPaketWindow().getStore(). Dies jedoch.getPaketWindow().getView().getStore().insert(0, new ...) nur gearbeitet haben. Warum brauchen wir getView() warum gibt es zwei verschiedene Läden?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen:
statt:
http://jsfiddle.net/qzMb7/1/
Es funktioniert, wenn ich hinzufügen ".getView()" wie
Allerdings verstehe ich immer noch nicht. Beides erreicht die gleiche speichern, wenn ich das hinzufügen von Datensätzen manuell kann ich sehen, wie Sie in den laden.Daten, aber es ist nur sichtbar, wenn ich auch .getView () - Teil