मैं dojox.grid.datagrid बनाता हूं और मैं सरणी से सामग्री को भरता हूं जैसे उदाहरण last example on page। समय के दौरान, मैं कोड में उस सरणी का मान बदलता हूं। उस ग्रिड की सामग्री को रीफ्रेश कैसे करें? बदले गए सरणी से नया डेटा कैसे लोड करें?डेटाग्रिड को रीफ्रेश करने के लिए कैसे करें
उत्तर
को बदलने के लिए ग्रिड में मूल्य, आपको ग्रिड की दुकान में मूल्य बदलने की आवश्यकता होगी। ग्रिड डेटा स्टोर डेटा से जुड़ा हुआ है, और ग्रिड खुद को आवश्यकतानुसार अपडेट कर देगा।
तो कुंजी डोजो के डेटा एपीआई को समझना और डोजो में कैसे काम करता है। सीधे ग्रिड में डेटा में हेरफेर करने की बजाय, इसे स्टोर में हेरफेर करें।
आदर्श रूप से, स्टोर आपकी सरणी है जिसे आप एप्लिकेशन चलाने के रूप में उपयोग करते हैं और आपको सरणी को ग्रिड में सिंक करने की आवश्यकता नहीं होनी चाहिए। आइटमफाइलवाइटस्टोर का उपयोग अपने डेटा धारक के रूप में करें जब तक कि यह संभव न हो।
इसके अलावा, डोजो डेटा पहचान एपीआई का उपयोग करके यदि संभव हो तो ग्रिड में आइटम ढूंढना बहुत आसान हो जाता है। मान लें कि जब कोई आइटम आपके एप्लिकेशन में अपडेट किया जाता है, हटाया जाता है, या बदला जाता है तो आपको कार्रवाई के दौरान आवश्यकतानुसार ग्रिड स्टोर को संशोधित करने में सक्षम होना चाहिए। यह निश्चित रूप से पसंदीदा दृष्टिकोण है। यदि आप ऐसा नहीं कर सकते हैं तो आपको सामान्य fetch करना होगा और अपने सरणी को मैन्युअल रूप से सिंक करने के लिए पूर्ण कॉलबैक का उपयोग करना होगा जो बहुत धीमा होगा और अच्छी तरह से स्केल नहीं करेगा, इस मामले में आप बस एक नया स्टोर भी बना सकते हैं एक साथ और
यहाँ एक बुनियादी बनाने के लिए, अद्यतन के साथ एक बेला है grid.setStore (myNewStore) के साथ ग्रिड के लिए असाइन करें, और हटाने आपरेशन: http://jsfiddle.net/BC7yT/11/
इन उदाहरणों सब एक पहचान की घोषणा जब बनाने का लाभ लेने दुकान।
var store = new dojo.data.ItemFileWriteStore({
data: {
identifier : 'planet',
items: itemList
}
});
अपडेट एक exisitng मद:
//If the store is not in your scope you can get it from the grid
var store = grid.store;
//fetchItemByIdentity would be faster here, but this uses query just to show
//it is also possible
store.fetch({query : {planet : 'Zoron'},
onItem : function (item) {
var humans = store.getValue(item, 'humanPop');
humans += 200;
store.setValue(item, 'humanPop', humans);
}
});
INSERT एक नया आइटम:
store.newItem({planet: 'Endron', humanPop : 40000, alienPop : 9000});
} catch (e) {
//An item with the same identity already exists
}
कोई आइटम हटाने: इस के साथ
store.fetchItemByIdentity({ 'identity' : 'Gaxula', onItem : function (item) {
if(item == null) {
//Item does not exist
} else {
store.deleteItem(item);
}
}});
निम्नलिखित कोड का टुकड़ा ग्रिड अद्यतन करने के लिए इस्तेमाल किया जा सकता:
var newStore = new dojo.data.ItemFileReadStore({data: {... some new data ...});
var grid = dijit.byId("gridId");
grid.setStore(newStore);
संपादित करें:
Dogo data grid reference guide (जोड़ें/पंक्तियों उदाहरण निकालने के लिए, ग्रिड डेटा उदाहरण को अद्यतन करना)
मैं एक specifi पंक्ति अद्यतन कर सकते हैं । यह उदाहरण एक वृक्षारोपण के लिए है।
var idx = this.treeGrid.getItemIndex(item);
if(typeof idx == "string"){
this.treeGrid.updateRow(idx.split('/')[0]);
}else if(idx > -1){
this.treeGrid.updateRow(idx);
}
(मुझे लगता है कि आप पहले से ही एक काम ग्रिड है और आप पूरी तरह से ग्रिड की दुकान को बदलना चाहते हैं)
अपने नए मूल्य के साथ एक नया डेटासंग्रह बनाएँ:
dataStore = new ObjectStore({ objectStore:new Memory({ data: data.items }) });
(डेटा मेरे लिए AJAX अनुरोध से प्रतिक्रिया है)
अपनी ग्रिड की बदलें नए के साथ फाड़े:
grid.store = dataStore;
प्रस्तुत:
grid.render();
डोजो 1.9 की
grid.store = store;
grid._refresh();
मेरे पास एक सर्वर-साइड फ़िल्टर किया गया एन्हांस्डग्रिड था, जो स्टोर को बदलकर खुशी से ताज़ा कर रहा था, और दूसरे उत्तरों में दिखाया गया था।
हालांकि मेरे पास एक और एन्हांस्ड ग्रिड था जो फ़िल्टर लागू होने पर रीफ्रेश नहीं होता था। हो सकता है कि यह क्लाइंट पक्ष फ़िल्टर किया गया हो (लेकिन डेटा अभी भी जेसनरस्ट स्टोर का उपयोग कर सर्वर से आ रहा है), लेकिन मुझे वास्तव में कारण पता नहीं है।
grid.setFilter(grid.getFilter());
यह hacky और अजीब बात है, लेकिन अगर यह सब कुछ विफल हो ...
: Eitherway, समाधान निम्न कोड के साथ ताज़ा करने के लिए था- 1. डेटाग्रिड व्यू की सामग्री को रीफ्रेश करने के लिए कैसे मजबूर करें?
- 2. डेटा संपादित करने के बाद डेटाग्रिड रीफ्रेश करें
- 3. matplotlib: figure.canvas को रीफ्रेश करने के लिए कैसे करें
- 4. एक WPF DataGrid को रीफ्रेश कैसे करें?
- 5. रीफ्रेश करने के लिए एक WPF नियंत्रण को मजबूर करें?
- 6. जावास्क्रिप्ट को रीफ्रेश करने के लिए खींचें
- 7. पिक्चरबॉक्स को रीफ्रेश कैसे करें
- 8. डेटाग्रिड व्यू: कुछ कोशिकाओं को अचयनित करने के लिए कैसे?
- 9. डेटाटेबल्स को रीफ्रेश कैसे करें
- 10. UITableViewCell को रीफ्रेश कैसे करें?
- 11. शेर पर रीफ्रेश करने के लिए स्क्रॉल करें
- 12. लॉगिन के बाद JSESSIONID कुकी को रीफ्रेश करने के लिए कैसे करें
- 13. jqGrid में डेटा को रीफ्रेश कैसे करें?
- 14. ग्रहण में "कार्य" को रीफ्रेश कैसे करें?
- 15. किसी एक्सेस फॉर्म को रीफ्रेश कैसे करें
- 16. छवि दृश्य को तुरंत रीफ्रेश कैसे करें
- 17. UITableViewController या NSFetchedResultsController को रीफ्रेश कैसे करें?
- 18. डेटाग्रिड व्यू - कॉलम को फ्रीज कैसे करें?
- 19. WPF डेटाग्रिड कॉलम को गैर-केंद्रित करने के लिए कैसे करें?
- 20. प्रोग्रामेटिक रूप से डेटाग्रिड पंक्ति विवरण को नियंत्रित करने के लिए कैसे करें
- 21. एसक्यूएल सर्वर। इंटेलिजेंस को रीफ्रेश कैसे करें?
- 22. Google मानचित्र को रीफ्रेश कैसे करें।
- 23. एंड्रॉइड पर रीफ्रेश करने के लिए Admob को कैसे मजबूर करें
- 24. अपने बाइंड को रीफ्रेश करने के लिए आइटम्ससोर्स कैसे प्राप्त करें?
- 25. बटन पर खंड टैब सामग्री को रीफ्रेश करने के लिए कैसे करें
- 26. tinymce iframe को रीफ्रेश कैसे करें?
- 27. प्रोग्रामिंग के ग्रहण कार्यक्षेत्र को रीफ्रेश कैसे करें?
- 28. ObservableCollection के साथ ViewModel से UI को रीफ्रेश कैसे करें?
- 29. आवेदन/पीडीएफ के एम्बेड को रीफ्रेश/पुनः लोड कैसे करें?
- 30. गतिविधि रीफ्रेश करने के लिए ऑनस्यूम() का उपयोग करना