Extjs 4.0.7, Editor Grid - wie aktualisiere ich den Zellenwert?

Ich muss den aktualisierten Zellenwert im Controller abrufen. (MVC)

Also habe ich es versucht,

var modified = this.getItemGrid().getStore().getUpdatedRecords();
console.log(modified); // return [] empty array

var modified = this.getItemList_Store().getUpdatedRecords();
console.log(modified); // return [] empty array

Aber es gibt immer ein leeres Array zurück, auch wenn ich einen Zellenwert aktualisiert habe.

Weiß jemand, was ich falsch mache?

Hier ist mein Teil des Sichtcodes,

Ext.define("App.view.orders.ItemList_view", {
    extend: "Ext.grid.Panel",
    alias: "widget.itemList_view",
    plugins: [
            Ext.create('Ext.grid.plugin.CellEditing', {
                clicksToEdit: 1
            })
    ],
    initComponent: function () {
        this.store = "ItemList_store";
        this.columns = [
            {
                xtype: 'checkcolumn', text: "Ship", width: 50, dataIndex: "DR"
            },
            { header: "test", width: 100, dataIndex: "test",
                editor: {
                    xtype : 'textfield'
                }
            }
        ];

        this.selModel = Ext.create("Ext.selection.CheckboxModel");
        //this.selModel = Ext.create("Ext.selection.CellModel"); // It does not works either.

        this.callParent(arguments);
    },
    .
    .
    .

Vielen Dank!

[BEARBEITEN]

Ich danke Ihnen sehr für Ihre Antwort! Ich habe noch einige Fragen zum Editorraster.

Es ist viel anders als Ext3. also bin ich jetzt sehr verwirrend :(

Q1. Wie sammle ich bearbeitete Aufnahmedaten?

Das Ereignis wurde ausgelöst, sobald die Rasterzelle geändert wurde. Ich möchte jedoch einen bearbeiteten Rasterdatensatz sammeln, sobald ich auf die Schaltfläche "Bearbeitete Zelle aktualisieren" klicke, und ich möchte alle gleichzeitig aktualisieren.

In Ext3 hat mir das gefallen,

(button) click : function(){
    var modified = mygridStore.getModifiedRecords();

    var recordsToSend = [];
    Ext.each(modified, function(record){
        recordsToSend.push(record.data);
    });

    var grid = Ext.getCmp('grid');
    grid.el.mask('Updating','x-mask-loading');
    grid.stopEditing();

    recordsToSend = Ext.encode(recordsToSend);

    Ext.Ajax.request({
        url : '/test/test',
        params : {
            data : recordsToSend
        },
        success : function(response){
            grid.el.unmask();
            alert(response.responseText);
            mygridStore.commitChanges();
        },
        failure : function(response){
            mygridStore.rejectChanges();
        }
    });
}

Wie kann ich den Code für Extjs4 ändern?

Q2. Ich weiß immer noch nicht, wie ich herausfinden soll, ob die Checkcolumn geändert wurde.

Ich habe es versucht, aber ich arbeite nicht für checkcolumn (natürlich habe ich das Kontrollkästchen nach Änderung getestet)

// grid coumn
{
 xtype: 'checkcolumn', header: "My Check Column", width: 50, dataIndex: "CH"
}

-

// in control
'myGrid': {
    validateedit: function (plugin, edit) {
        console.log(edit);
    },
    checkchange: function (plugin, edit) {
        console.log(edit);
        console.log(edit.value);
    }
}

Q3. Wenn ich auf die zu bearbeitende Zelle klicke, wird ein HTML-Tag in -_- ;;

Ich bedanke mich sehr für Ihre Hilfe. und vielen dank für ihre wertvolle zeit!

Antworten auf die Frage(3)

Ihre Antwort auf die Frage