Мне нужно получить (получить )обновленное значение ячейки в контроллере. (МВК)
Итак, я попробовал это,
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-тег в -_-;;
Я очень ценю вашу помощь. и большое спасибо за ваше драгоценное время!