2011-08-23 25 views
5

मेरे पास ट्रेस्टोर के साथ नेस्टेडलिस्ट है। पहली बार लोड होने पर स्टोर पूरी तरह से लोड हो जाता है और स्टोर के अनुसार सूची प्रदर्शित की जा रही है। जब मैं रीफ्रेश बटन पर क्लिक करता हूं, तो मेरे ट्रेस्टोर को नए डेटा (उसी डेटा मॉडल के साथ पहली बार) के साथ पुनः लोड किया जाना चाहिए और नेस्टेड सूची को डेटा के नए सेट के साथ पुनः लोड करने की भी आवश्यकता है।ट्रीस्टोर को फिर से लोड कैसे करें?

नीचे मेरी treestore परिभाषा

rightPaneStoreData = getFolderListData(); 

rightPaneStore =new Ext.data.TreeStore({ 

    autoLoad:false, 

    model: 'FIMT.models.rightPaneModel', 

    root: rightPaneStoreData, 
    proxy: { 

    type: 'memory', 

    reader: { 

     type: 'tree', 
     root: 'items' 
     } 

    }, 
    listeners: { 
     datachanged: function(records){ 
      alert("datachanged"); 
      } 
    } 

    }); 

rightPaneStore.load(); 

Ext.data.JsonStore में मैं एक ही store.loaddata का उपयोग कर() विधि पूरा किया है है। लेकिन मुझे TreeStore के लिए loaddata() विधि नहीं मिल सका।

कृपया मेरी मदद करें।

उत्तर

0

TreePanel में JsonStore जैसी दुकान नहीं है। यह स्वचालित रूप से सभी नोड्स दिखाता है, और आवश्यकता होने पर पुनः लोड करता है।

मामले में अपने rootNode (rightPaneStoreData) एक AsyncTreeNode (AJAX के माध्यम से भरी हुई), तो आप उपयोग कर सकते हैं:

rightPaneStoreData.reload()
(क्योंकि rightPaneStoreData अपने रूट नोड है)।

या वैकल्पिक रूप से (अधिक सामान्य):
tree.root.reload();

(जहां पेड़ अपने पेड़ के लिए एक संदर्भ है) यदि यह एक ASyncTreeNode नहीं है, आप इसे मैन्युअल रूप से करना होगा। अपने getFolderListData() फ़ंक्शन को फिर से कॉल करें, और पेड़ पर नई रूट असाइन करें। (tree.setRootNode())

+0

ऊपर सुझाए गए दो कोड मुझे – shatthi

+0

के लिए फ्लॉप काम के टुकड़े वहाँ हैं अपने कंसोल पर किसी भी त्रुटि? (क्रोम डेवटोल्स/फ़ायरफ़ॉक्स फायरबग?) –

+0

क्रोम में हाँ, यह कहता है कि रीलोड() मेरे राइटपेनेस्टाटा संदर्भ और ट्रेस्टोर संदर्भ दोनों के लिए उपलब्ध नहीं है। – shatthi

9

में उत्तर देखें यह मेरे लिए काम कर रहा है। मैं एमवीसी का उपयोग कर रहा हूं और यह कोड मेरे नियंत्रक में बुलाया जाता है।

treeStore.getRootNode().removeAll(); 
treeStore.load(); 
+0

treeStore.getRootNode()। RemoveAll(); जब पेड़स्टोर.लोड(); प्रत्येक नोड के लिए बनाए गए एक साथ AJAX कॉल से बचने के लिए मुझे वास्तव में आवश्यकता होती है; –

+0

कहा जाता है यह काम कर रहा है, लेकिन क्या आपको कोई विचार नहीं है कि मेरे ट्रेस्टोर से रिकॉर्ड निकालने में बहुत अधिक समय क्यों लग रहा है – Dibish

0
treeStore.getRootNode().removeAll(); 
treeStore.setRootNode({ 
    id: rootNodeId, 
    text: 'root' 
    // other configs in root 
}); 
// if you had non-standard children loads, then you would need to call: 
treeStore.getProxy().load(); 
// if you had non-standard children loads, and you had params in your load, then you would need to call: 
treeStore.getProxy().load({ 
    params: { 
    node: rootNodeId 
    } 
}); 
0
// Remove all current children if clear on load not set 
if (!treeStore.clearOnLoad) { 
    record.removeAll(); 
} 

// Call load, refreshing our view when done... 
var viewRefresher = function() { 
    view.refresh(); 
}; 

treeStore.load({ 
    node: record, 
    callback: viewRefresher 
}); 
संबंधित मुद्दे