Во-первых, извините за мой не очень хороший английский!Редактируемая сетка ExtJS, как обновить строку в базе данных после редактирования строки на сетке
Мне нужно сделать следующее: ExtJS 3.4 Editable Grid (example), который будет работать с json-форматом. Источник ввода находится в формате json. Я сделал это, все работает нормально, как в примере.
я сделал:
- загрузки данных из базы данных в массив в PHP
- массива кодируется в формат JSON
- редактируемого источник сетки страница с сообщением JSon теперь все работает нормально.
Теперь мне нужно сделать следующее: мне нужно обновить данные в базе данных по обновлению ячеек в сетке.
Как я могу это сделать? Не нашел ничего в Интернете.
Возможно, есть какой-то метод, например «OnCellEditting», как в delphi7?
Мой расслоение плотной код:
Ext.onReady(function() {
function formatDate(value) {
return value ? value.dateFormat('M d, Y') : '';
}
// shorthand alias
var fm = Ext.form;
// the column model has information about grid columns
// dataIndex maps the column to the specific data field in
// the data store (created below)
var cm = new Ext.grid.ColumnModel({
// specify any defaults for each column
defaults: {
sortable: false // columns are not sortable by default
},
columns: [{
header: 'ID',
dataIndex: 'id',
width: 30
}, {
id: 'firstname',
header: 'Firstname',
dataIndex: 'firstname',
width: 220,
// use shorthand alias defined above
editor: new fm.TextField({
allowBlank: false
})
}, {
header: 'Lastname',
dataIndex: 'lastname',
width: 220,
// use shorthand alias defined above
editor: new fm.TextField({
allowBlank: false
})
}]
});
// create the Data Store
var store = new Ext.data.JsonStore({
totalProperty: 'total', // total data, see json output
root: 'results', // see json output
url: '/grid/json',
fields: [
'firstname', 'lastname']
});
// create the editor grid
var grid = new Ext.grid.EditorGridPanel({
store: store,
cm: cm,
renderTo: 'grid-editable',
width: 440,
height: 300,
autoExpandColumn: 'firstname', // column with this id will be expanded
title: 'Edit Plants?',
frame: true,
clicksToEdit: 1
});
// manually trigger the data store load
store.load({
// store loading is asynchronous, use a load listener or callback to handle results
});
});
спасибо. Оно работает! Когда я редактирую запрос на отправку на правую страницу, хорошо. Его легко проверить, какие параметры были отправлены, и обновить их в базе данных, НО! Мне нужен ID для обновления правой строки. Как отправить и id строки в db и параметр? что-то вроде params: {'id': ** something_which_return_id **, 'firstname': field.getValue() } –
Я обновил свой ответ, пожалуйста, взгляните, если это то, что вам нужно –
Hm. Спасибо, что ответили. Я думаю, что это то, что мне нужно. Я добавил поле id в модель столбца (смотри править по моему вопросу), но в любом случае он ничего не отправляет. Что не так? –