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?
InformationsquelleAutor tkcn | 2013-02-13
Schreibe einen Kommentar