2012-09-19 21 views
8

मैंने इस उदाहरण का उपयोग करने और एक पेड़ में मूल सीआरयूडी जोड़ने का प्रयास किया है।पेड़ से आइटम कैसे हटाएं

http://dev.sencha.com/deploy/ext-4.0.0/examples/tree/treegrid.html

अभी के लिए, मैं सिर्फ पेड़ से एक आइटम हटाना चाहते हैं। मैंने बटन जोड़ा है और इसे क्लिक के तहत किया है:

click : function() {; 
    var record = tree.getSelectionModel().getSelection()[0]; 
    store.destroy(record); 
    store.sync(); 
} 

मैंने रिकॉर्ड और स्टोर मौजूद है सत्यापित किया है। स्टोर उदाहरण के रूप में ट्रीस्टोर प्रकार का है। अगर मैं भेजा जा रहा अनुरोध जांचता हूं, तो यह सिर्फ [] है। फिलहाल मेरे प्रॉक्सी में यह सब है:

var store = Ext.create('Ext.data.TreeStore', { 
    storeId : 'treeStore', 
    model : 'Task', 
    proxy : { 
     type : 'ajax', 
     // the store will get the content from the .json file 
     url : '../resources/data/treegrid.json' 
    }, 
    folderSort : true 
}); 

हटाए जाने पर क्लिक करने से वर्तमान में चयनित आइटम को हटाया नहीं जाता है। क्या मुझे प्रॉक्सी में एक उचित नष्ट यूआरएल स्थापित करने की ज़रूरत है, और यह अनुरोध हेडर में क्या हटाए जाने की आवश्यकता के बारे में कोई विवरण नहीं भेज रहा है? एक पेड़ से सीआरयूडी करने का कोई अन्य उदाहरण नहीं था जो मुझे मिल सकता था।

enter image description here


संपादित करें:

ध्यान दें कि store.destroy(record) का उपयोग करने का भ्रम का कारण Ext.data.Store एक विधि remove(record) है, लेकिन Ext.data.TreeStore नहीं है कि था। इसके अलावा, record.remove(true) के बजाय नष्ट करने के लिए एक शॉर्टेंड दृष्टिकोण record.destroy() है।

नोट हालांकि मुझे record.destroy() या record.remove(true) त्रुटियों में त्रुटियां मिलीं। संभवतः स्टोर को जेएसओएन के रूप में भेजने के लिए नोड्स को बनाए रखने की आवश्यकता है, इसलिए इसके बजाय record.remove() का उपयोग करें।

उत्तर

13

वृक्ष स्टोर में कोई विधि नष्ट नहीं होती है। चूंकि रिकॉर्ड एक ट्रेस्टोर से है, इसलिए इसे node interface से सजाया गया है। तो निकालें विधि का उपयोग करें (वैकल्पिक नष्ट के साथ)।

var record = tree.getSelectionModel().getSelection()[0]; 
    record.remove(true); 
    store.sync(); 
+0

धन्यवाद, मेरे हिस्से पर मूर्खतापूर्ण गलती :) मैं हटाए गए आइटम को 'store.getRemovedRecords()' के साथ प्रॉक्सी पर भेजने से पहले भी देख सकता हूं। –

+3

मैंने 'record.remove()' का उपयोग किया अन्यथा यह त्रुटियां देता है। –