は4.1

2012-07-19 8 views
15

は、私は店が新しいデータをロードする必要がありますいくつかのイベントで、このは4.1

 
{ 
    xtype: 'combobox', 
    emptyText: 'Functions' 
    store: [ 'none' ] 
} 

のようなコンボボックスを定義するので、私はコンボボックスから店を取得し、これを試してみてください。

 
oFunctionStore.loadData(['dothis', 'dothat', 'dosomething' ]); 

この後、コンボボックスには目に見える内容がなく、わずかな空白行がドロップダウン表示されます。

答えて

17
// Change this... 
oFunctionStore.loadData(['dothis', 'dothat', 'dosomething' ]); 

// to this... 
oFunctionStore.loadData([ [ 'dothis' ], [ 'dothat' ], [ 'dosomething' ] ]); 
  • コンボボックスは、暗黙的にモデルに配列を変換された、Ext.data.ArrayStoreを作成します。 loadDataに渡さ

  • dataパラメータは、モデルの配列、または(この場合、アレイの アレイ)モデルに変換することができるよりもオブジェクトの 配列のいずれかであることが期待されます。

  • 最初のストアのロードでは、元の配列がシーンの背後で[ [ 'none' ] ]に変換されました。主なコンボのための任意の店 -

は例here

1

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(); 
     } 
    } 

} 
関連する問題