2011-05-24 9 views
6

मैं एक पैनलSencha स्पर्श: ताज़ा सूची: दुकान

prj.views.NewsList = Ext.extend(Ext.Panel, { 
    layout: 'card', 
    initComponent: function() {  
     this.list = new Ext.List({    
      itemTpl: '......', 
      loadingText: false, 
      store: new Ext.data.Store({ 
       model: 'News', 
       autoLoad: true, 
       proxy: { 
        type: 'ajax', 
        url: '.....',     
        reader: { 
         type: 'json', 
         //root: '' 
        } 
       }, 
       listeners: { 
        load: { fn: this.initializeData, scope: this } 
       } 
      }) 
     }); 

     this.list.on('render', function(){ 
      this.list.store.load(); 
      this.list.el.mask('<span class="top"></span><span class="right"></span><span class="bottom"></span><span class="left"></span>', 'x-spinner', false); 
     }, this); 

     this.listpanel = new Ext.Panel({ 
      items: this.list, 
      layout: 'fit',    
      listeners: { 
       activate: { fn: function(){ 
        this.list.getSelectionModel().deselectAll(); 
        Ext.repaint(); 
       }, scope: this } 
      } 
     }) 

     this.items = this.listpanel;  
     prj.views.NewsList.superclass.initComponent.call(this); 
    }, 
}); 

Ext.reg('newsList', prj.views.NewsList); 

एक dockedItem में एक उपकरण पट्टी सेटअप में अंदर एक Ext.List में खबर की एक सूची है, मैं इस सूची को ताज़ा करने के लिए एक आइकन होता है।

items: [ 
    { 
     iconCls: 'refresh',        
     handler: function() {         
     prj.view.NewsList.list.store.read() 
     } 
    }, 
] 

लेकिन prj.view.NewsList वापसी अपरिभाषित! स्टोर की रीफ्रेश करने के लिए मैं सूची कैसे प्राप्त कर सकता हूं?

+0

मैं स्टोर को Ext.StoreMgr.get ('newsStore') द्वारा पुनर्प्राप्त करता हूं। लोड()। लेकिन मैं सूची के साथ पैनल को रीफ्रेश कैसे कर सकता हूं? सेन्चा टच 2.x बाइंडस्टोर पर – BasicCoder

उत्तर

5

यहां तक ​​कि मैं एक ऐसी ही समस्या का सामना करना पड़ा तरह काम करता है। मैं अपना उत्तर पोस्ट कर रहा हूं उम्मीद है कि यह किसी की मदद करेगा।

मेरे पास डेटा खोजने के लिए एक खोज बार है। (मेरी खोज सर्वर पर हो रहा है और परिणाम मेरे GET अनुरोध के जवाब में मेरे पास वापस भेज दिया जाता है

मूल रूप से मैं सिर्फ अपनी दुकान

क्या सब मैंने कोशिश के लिए URL बदलना पड़ा।

  1. myList.refresh(),
  2. myStore.load();
  3. दुकान समाशोधन और फिर इसे
  4. लोड हो रहा है को हटाने सूची और पुन: जोड़कर और यह (का उपयोग कर doLayout())

कुछ भी नहीं प्रस्तुत करना फिर से करने के लिए मजबूर काम किया ...

सिर्फ जोड़ने एक पंक्ति समर्थन के लिए

function handleSearch(strSearchText) 
    { 
    //myStore.loadData([],false); /tried to clear the store and reloading it 
    if(strSearchText !='') 
    { 
     searchString = '?search='+strSearchText; 
     searchURL = searchURLBasic+ searchString; 
    }else{ 
     searchURL = searchURLBasic; 
    } 
    console.log('search URL: ' + searchURL); 
    myStore.proxy.url =searchURL;   // this was one magical line of code that saved my life 
    myStore.load(); 
} 

धन्यवाद अब मेरी समस्या तय ।

14

कॉल अपने ताज़ा करें बटन पर इस लाइन

Ext.StoreMgr.get('newsStore').load() 

सूची automaticaly ताज़ा है जब आप दुकान पर लोड() विधि कहते हैं। स्टोर सूची से जुड़ा हुआ है।

उदाहरण:

items: [ 
    { 
     iconCls: 'refresh',  
     handler: function(event, btn) { 
      Ext.StoreMgr.get('newsStore').load(); 
     }   
    }, 
] 
1

मैं यह कर जब दुकान बदल रहा है और यह एक विजेता

var yourbutton = new Ext.Panel({ 
    listeners: { 
     afterrender: function(c){ 
      c.el.on('click', function(){ 
       YourList.update(); 
       YourList.bindStore(newStore); 
      }); 
     } 
    } 
}); 
+0

मौजूद नहीं है। SetStore() का उपयोग करना चाहिए, लेकिन मुझे इसके साथ भी समस्याएं आ रही हैं। – AnthonyVO