Ext js 6:网格不显示新插入项目的所有字段

时间:2017-01-06 22:42:33

标签: extjs extjs6 extjs6-classic extjs-grid extjs-stores

我有以下型号和商店。

型号:

Ext.define('TruckTask.model.Company', {
extend: 'Ext.data.Model',

idProperty: 'id',

fields: [
    {name: 'id',  type: 'int', defaultValue: null},
    {name: 'name',  type: 'string'},
    {name: 'site',  type: 'string'},
    {name: 'createdDate',  type: 'date',
        convert: function(rawValue, model) {

    var intDate = parseInt(rawValue);

            if(intDate > 0){
                return Ext.util.Format.date(new Date(intDate), 'd.m.Y');
            }

            if(typeof(rawValue) == 'object'){
                return rawValue;
            }
        }
    },
    {name: 'langId',  type: 'int'}
]

});

商店:

Ext.define('TruckTask.store.Company', {
extend: 'Ext.data.Store',

requires : [
    'TruckTask.model.Company',
    'TruckTask.config.SecureRestProxy'
],

alias: 'store.company',

storeId: 'company',

model   : 'TruckTask.model.Company',

autoLoad: true,
autoSync: true,

proxy: {
    type: 'secure-rest',
    reader: {
        type: 'json'
    },
    writer: {
        type: 'json'
    },
    api: {
        read: '/api/company',
        create: '/api/company',
        update: '/api/company',
        destroy: '/api/company'
    }
}

});

我使用网格面板列出这些模型。但是我通过另一种形式创造了新模型。

在网格中我定义了商店:

    store: {
    type: 'company'
},

和表单的提交处理程序已实现:

var record = this.getViewModel().get('rec');
    var companyStore = Ext.data.StoreManager.lookup('company');
    companyStore.add(record);

因此记录立即显示在网格面板中,但没有createdDate字段值。此值来自服务器响应。

当我收到服务器响应时,如何在网格面板中更新此记录?

1 个答案:

答案 0 :(得分:0)

我认为你会发现this answer很有用。在商店中实施 onCreateRecords ,并设置创建和保存新记录后需要设置的内容。