Extjs 4.0.7, Editor Grid -как получить обновленное значение ячейки?

Мне нужно получить (получить )обновленное значение ячейки в контроллере. (МВК)

Итак, я попробовал это,

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

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

но всегда он возвращает пустой массив, даже если я обновил какое-то значение ячейки.

кто-нибудь знает, что я делаю неправильно?

Вот моя часть кода просмотра,

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);
    },
   .
   .
   .

Благодарю вас!

[РЕДАКТИРОВАТЬ]

Большое спасибо за ваш ответ! У меня есть еще вопрос о сетке редактора.

Он сильно отличается от Ext3. поэтому я сейчас очень запутался:(

Q1. Как собрать отредактированные данные записи (после нажатия кнопки )?

событие запускается после изменения ячейки сетки. но я хочу собрать отредактированную запись сетки, как только я нажму кнопку «Обновить отредактированную ячейку», и я хочу обновить все вместе сразу.

В Ext3 я сделал так,

(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();
        }
    });
}

Как я могу изменить код для Extjs4?

Q2. Я до сих пор не знаю, как узнать об измененном контрольном столбце.

Я пробовал это, но у меня не работает контрольный столбец (, потому что я тестировал флажок после изменения)

// 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. Когда я нажимаю на ячейку для редактирования, отображается HTML-тег в -_-;;

enter image description here

Я очень ценю вашу помощь. и большое спасибо за ваше драгоценное время!

5
задан Acinom Etatsnier 26 June 2012 в 21:41
поделиться