2017-01-06 75 views
0

次のモデルとストアがあります。Ext js 6:グリッドに新しい挿入アイテムのすべてのフィールドが表示されない

モデル:

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にフィールド値なし。この値はサーバーの応答から得られます。

サーバーレスポンスを取得したら、このレコードをグリッドパネルでどのように更新できますか?

+0

自動的にそうする必要があります。そうでない場合は、問題を示す最小限の検証可能な例を作成してください。 – Alexander

+0

はい、私はそのような動作を期待していますが、実際には、追加された新しい行をクリックすることもできません。グリッドで表示されますが、クリックすると選択できませんでした。 ext jsによって生成されるモデルのIDを避けるために、私のトリックにつなげることができますか?店内のイベントリスナーを見てください。新しいレコードを追加すると、テンプレート-によってIDが取得されます。サーバー側でエラーが出ます。 –

+0

グループ化されたグリッドを使用しているときも、ExtJSのバグが原因です。グリッドでグループ化を使用していますか? – Alexander

答えて

0

this answerが便利だと思います。あなたの店にonCreateRecordsを実装し、新しいレコードが作成され保存された後に設定する必要があるものを設定します。

関連する問題