私はこのようなコンボボックスを定義します
{{ xtype:'コンボボックス'、 emptyText:'関数' ストア:['なし'] }
次に、あるイベントでストアが新しいデータをロードする必要があるため、コンボボックスからストアを取得してこれを試します。
oFunctionStore.loadData(['dothis'、'dothat'、'dosomething']);
しかし、この後、コンボボックスには、目に見えるコンテンツがなく、小さな空白行だけのドロップダウンがあります。
// Change this...
oFunctionStore.loadData( ['dothis', 'dothat', 'dosomething' ] );
// to this...
oFunctionStore.loadData( [ [ 'dothis' ], [ 'dothat' ], [ 'dosomething' ] ] );
コンボボックスは、Ext.data.ArrayStore
配列をモデルに変換するを暗黙的に作成します。
data
に渡されるパラメーターは
、loadData
モデルの配列、またはモデルに変換できるオブジェクトの配列(この場合は配列の配列)のいずれかであることが期待されます。
[ [ 'none' ] ]
舞台裏に変換されました。こちらの例をご覧ください
carStore-メインコンボのストア。
carModelStore-ストア。carStoreベースのコンボボックスでの選択に依存する必要があります
var carModelStore = new Ext.data.Store({
reader: new Ext.data.JsonReader({
fields: ['id', 'car-model'],
root: 'rows'
}),
storeId: 'car-model-store',
proxy: new Ext.data.HttpProxy({
url: 'carmodeldataprovider.json?car-name=lamborghini'
}),
autoLoad: true
});
{ xtype: 'combo', name: 'car-name', fieldLabel: 'Car', mode: 'local', store: carStore, triggerAction: 'all',
listeners: {
select: function(combo, records, eOpts){
var carName = records.get('car-name'); // the element selected in combo
var carModelStore = Ext.StoreMgr.lookup("car-model-store");
carModelStore.proxy.setUrl('carmodeldataprovider.json?car-name=' + carName, false);
carModelStore.reload();
}
}
}