मैं डोजो के लिए अपेक्षाकृत नया हूं और देखा है कि डेटाग्रिड गतिशील फ़िल्टरिंग क्षमता प्रदान करता है जो आपके द्वारा फ़िल्टर टेक्स्ट इनपुट में टाइप किए गए दृश्यमान पंक्तियों को कम करता है। मुझे ड्रिगिड के साथ इसे कैसे करना है इसके बारे में कोई उदाहरण नहीं मिला है। यदि यह किया जा सकता है, तो कृपया एक उदाहरण प्रदान करें या मुझे संसाधन पर इंगित करें जो एक ट्यूटोरियल या उदाहरण प्रदान करता है। धन्यवाद!क्या डेटाग्रिड में एक ड्रिग्रिड में डेटा फ़िल्टर करना संभव है? यदि हां, तो कैसे?
उत्तर
हां, यह संभव है। dgrid/OnDemandGrid
का उपयोग करें और फ़ंक्शन को परिभाषित करें जो true
या false
वापस करेगा dojo/store
में प्रत्येक पंक्ति के लिए ग्रिड को पावर करने के लिए अपने तर्क के आधार पर।
मैं jsFiddle पर साथ खेलने के लिए एक उदाहरण तैयार: http://jsfiddle.net/phusick/7gnFd/, तो मैं बहुत ज्यादा समझाने की जरूरत नहीं है:
क्वेरी फंक्शन:
var filterQuery = function(item, index, items) {
var filterString = filter ? filter.get("value") + "" : "";
// early exists
if (filterString.length < 2) return true;
if (!item.Name) return false;
// compare
var name = (item.Name + "").toLowerCase();
if (~name.indexOf(filterString.toLowerCase())) { return true;}
return false;
};
ग्रिड :
var grid = new Grid({
store: store,
query: filterQuery, // <== the query function for filtering
columns: {
Name: "Name",
Year: "Year",
Artist: "Artist",
Album: "Album",
Genre: "Genre"
}
}, "grid");
मुझे पता है कि यह सवाल पूछने का उत्तर नहीं है, और प्रदान किया गया उत्तर कुशल है और हम इसका काफी उपयोग करते हैं।
हालांकि, यदि आप ट्रीग्रिड ("ड्रिगिड/पेड़" प्लगइन के साथ कॉलम) का उपयोग कर रहे हैं तो यह कार्यक्षमता ठीक से काम नहीं कर रही है। मैंने एक पेड़ ग्रिड के साथ स्वीकृत उत्तर के समान व्यवहार को अनुकरण करने के लिए कुछ कोड लिखा है। यह मूल रूप से स्टोर में वस्तुओं के माध्यम से लूपिंग कर रहा है और किसी भी पंक्ति तत्व को छुपा रहा है जो आपके द्वारा निर्धारित शर्त से मेल नहीं खाता है। सोचा कि अगर मैं किसी की मदद करता हूं तो मैं इसे साझा करूंगा। यह बदसूरत है और मुझे यकीन है कि इसे बेहतर किया जा सकता है, लेकिन यह काम करता है।
यह मूल रूप से फ्यूसिक के उत्तर के समान अवधारणा का उपयोग करता है। आप किसी पाठ बॉक्स पर एक मूल्य देखने की जरूरत है, लेकिन इसके बजाय ग्रिड आप को ताज़ा करने के लिए यह एक फ़ंक्शन को कॉल करें:
textBox.watch("value", lang.hitch(this, function() {
if (timeoutId) {
clearTimeout(timeoutId);
timeoutId = null;
};
timeoutId = setTimeout(lang.hitch(this, function() {
this.filterGridByName(textBox.get('value'), myGrid);
}, 300));
}));
और यहाँ समारोह है:
filterGridByName: function(name, grid){
try {
for (var j in grid.store.data){
var dataItem = grid.store.data[j];
var childrenLength = dataItem.children.length;
var childrenHiddenCount = 0;
var parentRow = grid.row(dataItem.id);
for (var k in dataItem.children){
var row = grid.row(dataItem.children[k].id);
var found = false;
if (dataItem.children[k].name.toLowerCase().indexOf(name.toLowerCase()) != -1){
found = true;
}
if (found){
if (row.element){
domStyle.set(row.element, "display", "block");
}
if (parentRow.element){
domStyle.set(parentRow.element, "display", "block");
}
} else {
childrenHiddenCount++;
// programmatically uncheck any hidden item so hidden items
for (var m in grid.dirty){
if (m === dataItem.children[k].id && grid.dirty[m].selected){
grid.dirty[m].selected = false;
}
}
if (row.element){
domStyle.set(row.element, "display", "none");
}
}
}
// if all of the children were hidden, hide the parent too
if (childrenLength === childrenHiddenCount){
domStyle.set(parentRow.element, "display", "none");
}
}
} catch (err){
console.info("error: ", err);
}
}
- 1. क्या रूबी में टीएलएस v1.2 को सक्षम करना संभव है? यदि हां, तो कैसे?
- 2. क्या एक एक्सएमएल फ़ाइल में एकाधिक लाइनों में एक स्ट्रिंग को विभाजित करना संभव है? यदि हां, तो कैसे?
- 3. क्या इनलाइन-ब्लॉक तत्व को केंद्र करना संभव है और यदि हां, तो कैसे?
- 4. क्या एक अलग उप डोमेन से कुकी को पढ़ना संभव है? यदि हां, तो कैसे?
- 5. क्या विजुअल स्टूडियो टीम सिस्टम 2008 में ऑटो-मर्ज विकल्प को अक्षम करना संभव है? यदि हां, तो कैसे?
- 6. क्या पाइथन के साथ .mobi फाइलें बनाना संभव है? यदि हां, तो कैसे?
- 7. क्या एक्शनबार टैब ऊंचाई एक्शनबार ऊंचाई से अधिक बनाना संभव है? यदि हां, तो कैसे?
- 8. क्या आप गिट में एक समग्र परिवर्तन देख सकते हैं? यदि हां, तो कैसे?
- 9. क्या जावा एनम के कुछ मूल्यों को हटाना संभव है और यदि हां, तो कैसे?
- 10. क्या COM इंटरऑप कॉलर्स को सी # एनम का खुलासा करना संभव है, और यदि हां, तो कैसे?
- 11. क्या किसी विशेष लक्ष्य के लिए क्लासपाथ को चींटी प्रिंट करना संभव है? यदि हां, तो कैसे?
- 12. क्या घर से इंटरेक्टिव वॉयस रिस्पॉन्स सिस्टम बनाना संभव है, यदि हां, तो सबसे अच्छा समाधान
- 13. ड्रिग्रिड
- 14. सी ++ में पोस्टिनक्रिकमेंट की तुलना में तेज़ी से बढ़ाना - सच? यदि हां, तो यह क्यों है?
- 15. योजना और रैकेट अलग हैं? यदि हां, तो कैसे?
- 16. क्या सी # में एक कन्स्ट्रक्टर को ओवरराइड करना संभव है?
- 17. डेटाग्रिड व्यू को फ़िल्टर करना जिसमें डेटाबेस
- 18. क्या मैं एक कस्टम कंपाइलर त्रुटि उत्पन्न कर सकता हूं? यदि हां, तो कैसे?
- 19. क्या मैं एक PHP फ़ंक्शन के अंदर जावास्क्रिप्ट अलर्ट जोड़ सकता हूं? यदि हां, तो कैसे?
- 20. क्या आप PHP में आरईएसटी का उपयोग कर सकते हैं? यदि हां, तो कैसे?
- 21. डेटाग्रिड में केवल एक पंक्ति का चयन करना संभव बनाएं?
- 22. क्या जावा ऐप सर्वर धागे को नष्ट करने में सक्षम हैं? यदि हां, तो कैसे?
- 23. क्या एफएफआई सरणी के साथ सौदा कर सकता है? यदि हां, तो कैसे?
- 24. क्या हम डेटासेट को वेब सेवा विधि में पास कर सकते हैं? यदि हां, तो कैसे?
- 25. डेटा फ़िल्टर करना
- 26. एमएसबिल्ड - क्या यह एक समाधान फ़ाइल में परियोजना निर्भरताओं को काम कर सकता है? यदि हां, तो कैसे?
- 27. अभी भी उपयोग में है? यदि हां, तो कैसे और कहाँ?
- 28. क्या सी # डबल अर्धविराम की अनुमति देता है; ; यदि हां, तो क्या कोई विशेष तरीका है?
- 29. क्या सिल्वरलाइट डेटा टेम्पलेट में एक ईवेंट को बाध्य करना संभव है?
- 30. क्या डेटाग्रिडव्यू में पंक्तियां और कॉलम स्विच करना संभव है?
धन्यवाद phusick! बहुत उपयोगी! क्या आप लाइन को समझा सकते हैं: अगर (~ name.indexOf (filterString.toLowerCase())) {वापसी सही;} – teaman
फ़िल्टरस्ट्रिंग के अंत में आप "" संलग्न क्यों करते हैं इसके बारे में भी उत्सुक हैं। क्या यह एक स्ट्रिंग को टाइपकास्ट करने के लिए है? – teaman
हां, इसे एक स्ट्रिंग बनाने के लिए, क्योंकि मुझे 'लंबाई' और 'toLowerCase() 'की आवश्यकता है। _tilde_ या फिर भी ऑपरेटर छोटा नहीं है और कुछ ब्राउज़रों में [fast] (http://jsperf.com/indexof-and-tilde/2) 'name.indexOf (filterString.toLowerCase())> -1' से। देखें [द ग्रेट मिस्ट्री ऑफ़ द टिल्डे (~)] (http://www.joezimjs.com/javascript/great-mystery-of-the-tilde/)। – phusick