フォームのコンボボックスに問題があります。form.loadRecord
問題は、フォームデータを(を使用して)ロードすると、モデルにデータがあることがわかっていても、コンボボックスが空になることがあることです。
Firebugを調べると、レコードがロードされた後にコンボボックスストアがロードされていることがわかります。これが理由だと思います。コンボボックスストアは後でロードされ、次にレコードがロードされます。
これが私がコンボボックスストアを設定する方法です:
//All stores have autoload:true configuration.
var possessionGroundsStore = Ext.create('path.to.store');
var vehicleTypesStore = Ext.create('path.to.store');
var usePurposesStore = Ext.create('path.to.store');
this.editView = Ext.create('path.to.view');
this.editView.getPossessionGroundsField().store = possessionGroundsStore;
this.editView.getVehicleTypeIdComboBox().store = vehicleTypesStore;
this.editView.getUsePurposeField().store = usePurposesStore;
//later
this.editView.loadRecord(record);
この問題を解決する一般的な方法はありますか?
私が今見ることができる唯一の方法はstore.load
、すべてのコンボボックスストアでコールバックを使用し、すべてのストアがロードされた後にloadRecordを実行することですが、それは複雑に思えます。
何か助けはありますか?
更新:
がform.loadRecord
呼び出されると、内部的に。が呼び出されますfield.setValue()
。つまり、要点は、コンボボックスストアを呼び出す前にデータを入力する必要setValue
があるということです。ストアがロードされていない場合は、のvalueField
代わりにが表示されますdisplayField
。