将数据发送到数据库后如何刷新网格?我有一个网格。在我在网格中编辑时间后,extjs将请求writer
发送GET
到服务器。服务器用 回复回复JSON
。我需要用新数据正确刷新网格中的所有行。不幸的是,当我编辑行时我不能167
。
但是当我编辑行时168
,它在里面显示错误的数据,并且只有一行。我从服务器得到了这个 JSON:
{"dataFromServer":[{"id":"167","time_duration_real":"00:30:00"},{"id":"168","time_duration_real":"02:35:00"}],"success":true}
这是我的模型:
// Создаем model
Ext.define('Users', {
extend: 'Ext.data.Model',
//idProperty: 'id',
//idProperty: 'id',
fields: [{
name: 'id',
type: 'int',
//mapping: 'id'
},
{
name: 'time_duration_real',
type: 'date',
dateFormat: 'H:i:s'
}
]
});
店铺:
var store = Ext.create('Ext.data.Store', {
autoLoad: true,
autoSync: true,
model: 'Users',
// Задает параметр для фильтрации подтаблиц myGroupingFeature
groupField: 'date',
groupDir: 'DESC',
proxy: {
type: 'ajax',
url: username+'.php',
api: {
create: username+'.php?action=create',
read: username+'.php?action=read',
update: username+'.php?action=update',
destroy: username+'.php?action=delete'
},
reader: {
type: 'json',
// Данные получаемые от сервера, которые мы затем обрабатываем в таблице
rootProperty: 'dataFromServer'
},
writer: {
type: 'json',
encode: true,
rootProperty: 'dataUpdate',
allowSingle: false,
writeAllFields: false,
//root:'records'
},
actionMethods: {
create: 'GET',
read: 'GET',
update: 'GET',
destroy: 'GET'
}
},
网格(用于 time_duration_real):
{
header: 'Длительность',
width: '4.5%',
// sortable: true,
dataIndex: 'time_duration_real',
xtype: 'datecolumn',
renderer: Ext.util.Format.dateRenderer('H:i'),
// summaryType суммирует время из time_duration
summaryType: function(records, r2) {
// Все время в минутах
var m = 0;
for (var i = 0; i < r2.length; i++) {
if (r2[i] == null) continue;
var d = new Date(r2[i]);
m = m + d.getHours() * 60 + d.getMinutes();
}
var hours = Math.trunc(m / 60);
var minutes = m % 60;
// // Создаем сегодняшную дату и задаем ей полученные часы и минуты. Именно они будут отображаться summaryRenderer
return hours + ":" + minutes;
},
summaryRenderer: function(value) {
return Ext.String.format('Всего: {0}', value);
}
},