0

将数据发送到数据库后如何刷新网格?我有一个网格。在我在网格中编辑时间后,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);
                        }
                    },
4

0 回答 0