0

私は次のモデルとストアを持っています。

モデル:

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 フィールド値は表示されません。この値は、サーバーの応答から取得されます。

サーバーの応答を受け取ったときに、グリッド パネルでこのレコードを更新するにはどうすればよいですか?

4

1 に答える 1

0

この回答は役に立つと思います。ストアにonCreateRecordsを実装し、新しいレコードを作成して保存した後に設定する必要があるものを設定します。

于 2017-01-07T09:57:57.450 に答える