Ext.selection.RowModel(डिफ़ॉल्ट) selModel का उपयोग करते समय क्या ग्रिड चयन के लिए ExtJS 4.2 मानक फ़ंक्शन निष्पादित हो जाता है?




grid extjs4 (2)

जिस तरह से Ext.grid.Panel rowexpander प्लगइन काम करता है उसमें एक बग है जब नेस्टेड ग्रिड को रेंडर करने के लिए सेट किया जाता है, पंक्ति एक्सपेन्डर डिवि आईडी में

जब इसे लागू किया जाता है, तो यह देखना मुश्किल है कि वास्तव में क्या चुना जा रहा है इसका कारण यह है कि "अक्षम चयन" और "ट्रैकमाउस ओवर" कॉन्फ़िगर करने के लिए दोनों को हाइलाइट करने के लिए माना जाता है। मुझे "trackMouseOver: false" सेट करना होगा ताकि ग्रिड पंक्तियों पर होवर करना इस व्यवहार को दोबारा बनाने में हस्तक्षेप न करें। उसके बाद "निष्क्रिय चयन: गलत" सेट होना चाहिए ताकि यह चयन समस्या वास्तव में हो।

समस्या यह है कि जब आप मूल ग्रिड इंडेक्स 0 पंक्ति के नेस्टेड ग्रिड का सूचकांक 1 को चुनते हैं, तो पेरेंट ग्रिड की अनुक्रमणिका 1 पंक्ति भी चयनित होती है। अगर आप मूल ग्रिड इंडेक्स 0 पंक्ति के नेस्टेड ग्रिड का सूचकांक 2 चुनें, पेरेंट ग्रिड के इंडेक्स 2 को भी चुना जाता है।

जब 935424 का चयन किया जाता है, 815138 का चयन किया जाता है क्योंकि वे दोनों सूचकांक 0 हैं।

जब 1056257 का चयन किया जाता है, 1013525 चुना जाता है, क्योंकि वे दोनों सूचकांक 1 हैं।

जब 1200191 का चयन किया जाता है, 1261631 का चयन किया जाता है क्योंकि वे दोनों सूचकांक 2 हैं

मुझे संदेह है कि चयन मॉडल का उदाहरण ग्रिड और नेस्टेड ग्रिड के साथ साझा किया जा रहा है क्योंकि मैं एक ही परिभाषा का उपयोग कर रहा हूं वे निश्चित रूप से एक ही परिभाषा के अलग-अलग उदाहरण हैं, लेकिन मुझे यकीन नहीं है कि ढांचा कैसे Ext.create का उपयोग कर अतिरिक्त ग्रिड को संभालता है?

मैं यह पूछना चाहता हूं कि कैसे इसे ठीक करें या मुझे बंद करें, मैं आपके ऊपर मतदान करूँगा (अक्सर)। लेकिन अगर आप कम से कम मुझे इस बारे में एक सुराग दे सकते हैं कि इस चयन की फ़ंक्शन को फ्रेमवर्क में कहां बुलाया जा रहा है, तो मुझे सही रास्ते पर ले जाया जाएगा और इसके लिए डिबग कर सकते हैं और इसे ठीक कर सकते हैं। मैंने पढ़ा है कि घटनाएं बुलबुला कर सकती हैं, और हो सकता है कि यहाँ क्या हो रहा है ऐसा लगता है कि पंक्ति में संभाल भी है, क्योंकि जब मैं नेस्टेड ग्रिड पंक्ति को दो बार क्लिक करता हूं, तो वह केवल उस पंक्ति को बढ़ाने की कोशिश नहीं करता है, लेकिन यह भी कि मूल ग्रिड पंक्ति से पंक्ति (जो पंक्ति अनुक्रमणिका से मेल खाता है)।


आपने चयन मॉडल को कैसे लोड किया?

selModel: 'rowselection',

या

selModel: Ext.create('Ext.selection.RowModel'),

यदि आप पहले सिंटैक्स का उपयोग करते हैं, तो आपको प्रत्येक ग्रिड के लिए एक स्वतंत्र चयन मॉडल मिलना चाहिए। यदि आप दूसरी सिंटैक्स का उपयोग करते हैं, तो आपको केवल एक चयन मॉडल मिलता है जो सभी ग्रिड उदाहरणों के बीच साझा किया जाता है।


किसी रिकर्सिव नेस्टेड ग्रिड के निर्माण के बाद, मुझे इस लाइन को कॉल करना पड़ा, ताकि क्लिक और डीबीएलक्लिक (और अन्य) की घटनाएं पैर की ग्रिड पर बुलबुले / प्रचार न करें।

grid[cnt].getEl().swallowEvent(['mouseover', 'mousedown', 'click', 'dblclick', 'onRowFocus']);






nested