2017-01-30 10 views
16

मैंने अपनी ग्रिड स्क्रॉल को दृश्यमान बनाने के लिए scrollIntoView() रखा। जब मैं ग्रिडकॉन्टेनर में नया ग्रिड जोड़ता हूं तो मैं इस विधि का उपयोग करता हूं। यह काम कर रहा है मैं डीबगर से जांच सकते हैं। मेरी scrollIntoView()वास्तव में क्या रोकता है?

grid.body.dom.scrollIntoView(); 

लेकिन एक बार यह आस्थगित करें समारोह में पहुंच गया यह कार्य नहीं कर रहा scrollIntoView()। क्या कोई सुझाव दे सकता है कि इसे कैसे छोड़ें। क्या रोकता है और इसे कैसे छोड़ें। इसके अलावा मैं grid.focus() का उपयोग कर रहा हूं और फिर एक ही चीज हो रही है। ग्रिड देखने में आ रहा है लेकिन डीबगर से बाहर आने के बाद कोई दृश्य नहीं दिख रहा है।

defer: function(fn, millis, scope, args, appendArgs) { 
    fn = Ext.Function.bind(fn, scope, args, appendArgs); 
    if (millis > 0) { 
    return setTimeout(function() { 
     if (Ext.elevateFunction) { 
     Ext.elevateFunction(fn); 
     } else { 
     fn(); 
     } 
    }, millis); 
    } 
    fn(); 
    return 0; 
}, 
+1

'defer' अनिवार्य रूप से 'setTimeout' की तरह है। हालांकि मैं आपके बाकी प्रश्न पर वास्तव में स्पष्ट नहीं हूं। –

+0

@EvanTrimboli अगर मुझे टाइमआउट नहीं चाहिए तो मुझे क्या करना होगा। मैं 'grid.body.dom.scrollIntoView() दे रहा हूं; कुछ समय बाद यह ग्रिड में यह कोड काम नहीं कर रहा है। – David

+2

पर्याप्त जानकारी नहीं है, 'defer' कॉल का कारण क्या है? आप स्क्रॉलर एपीआई का उपयोग क्यों नहीं कर रहे हैं? 'grid.body.dom' स्क्रॉल करने के लिए सही बात नहीं है। –

उत्तर

3

का संभावित हल घटक के लिए स्क्रॉल करने के लिए नहीं है, लेकिन एक अन्य कार्ड पर केंद्र कंटेनर के लिए card layout का उपयोग करें और नए ग्रिड प्रदर्शित करने के लिए किया जाएगा।

var centerCt; // reference to your center container 
var centerLayout = centerContainer.getLayout(); 
var newGrid = Ext.create('Ext.grid.Panel', {}); 
centerCt.add(newGrid); 
centerLayout.setActiveItem(newGrid); 

मैंने Sencha Fiddle बनाया।

+0

मैं vbox का उपयोग कर रहा हूं और जब मैं कार्ड में बदलता हूं तो कोई दूसरा ग्रिड लोड नहीं हो रहा है। खैर, जो भी आपने जवाब में लिखा है उसे कोशिश करें और कुछ समय में आपसे संपर्क करें। – David

+0

यह काम नहीं करेगा, क्योंकि एक बार में मैं केवल एक ग्रिड दिखा रहा हूं। मुझे स्क्रॉल करने योग्य होने के लिए मेरे पैनल की आवश्यकता है। – David

संबंधित मुद्दे