2012-07-19 14 views
15

मैं इसExtJS में बता गया स्टोर डेटा बदलने के लिए 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, जो मॉडल में सरणियों में परिवर्तित कर देंगे पैदा करता है।

  • data पैरामीटर loadData के लिए पारित या तो मॉडल की एक सरणी, या की तुलना में मॉडल के लिए परिवर्तित किया जा सकता वस्तुओं का एक सरणी (इस मामले में, सरणियों के एक सरणी) होने की उम्मीद है।

  • प्रारंभिक स्टोर लोड पर, मूल सरणी को दृश्यों के पीछे [ [ '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(); 
     } 
    } 

} 
संबंधित मुद्दे