onload - dojo.datagrid लोडिंग को कैसे पूरा किया जाए?





dojox.grid.datagrid (5)


जैसा कि एलेक्स ने पहले ही बताया है, आप (दुर्भाग्यवश) निजी _onFetchComplete ईवेंट पर प्रतिक्रिया कर सकते हैं। Dojo 1.7 के साथ, यह dojo के साथ प्राप्त किया जा सकता है। जैसा की तरह:

require(["dojo/aspect", "dojox/grid/DataGrid", ...], function(aspect, DataGrid, ...)
    var myGrid = new DataGrid({ ... });
    aspect.after(myGrid, "_onFetchComplete", function() {
        // Do something with myGrid...    
    });
});

इस सवाल का पहले से ही उत्तर दिया गया है:

मेरे पास अपने पृष्ठों में से एक में डोजो डाटग्रिड है I डेटाग्रिड और इसकी दुकान (URL को कॉल करके) को घोषणात्मक विधि द्वारा बनाया जाता है गतिशील / प्रोग्रामेटिक द्वारा नहीं

मुझे एक जावास्क्रिप्ट पद्धति को निष्पादित करने की आवश्यकता है जो एक डिव (जो डेटाग्रिड से कुछ डेटा की आवश्यकता होती है) को प्रदर्शित करता है, जो कि मेरे डेटाग्रिड के ठीक नीचे है। मुझे अपने डेटाग्रिड लोडिंग के पूरा होने के बाद ही डिवीज़ प्रदर्शित करना चाहिए, इससे पहले नहीं।

मैं घटना के लिए देख रहा हूं जैसे डेटाग्रिड के लिए ओलोड पूरा किया गया। क्या हमारे पास dojo.datagrid के साथ कोई घटना है? मैं इसे डोजो की घटना की सूची में नहीं देख रहा हूं। डैटग्रिड प्रलेखन।

क्या डोजो डेटाग्रिड ऑनलोड की जांच करने का कोई तरीका है?

क्या डोजो का उपयोग करने का कोई तरीका है? इसे संभाल करने के लिए कनेक्ट करें?

कृपया मुझे बताएं अगर हमारे पास यह करने का कोई तरीका है ...

धन्यवाद, राज




आप यह जांचने के लिए एक टाइमर सेट अप कर सकते हैं कि डेटा लोड हो रहा है या नहीं, जब तक लोड पूरा नहीं हो जाता, तब तक हर दूसरे या तब तक चलाएं (सेट से चुने गए इंडेक्स सत्य वापस आएंगे):

private var load_check:uint;

    /* start the interval timer when the app is initialized */
protected function init ():void
{
    load_check = setInterval(getTime, 500); // 1/2 second
}
private function getTime():void
{
    if ( !datagrid.setSelectedIndex (0))
        return;
    clearInterval(load_check); // data loaded!
}



डेटाग्रिड स्वयं सभी डेटा को वास्तव में कभी भी लोड नहीं करता है, यह केवल उसके स्टोर में डेटा का एक उप चयन दिखा रहा है।

ओलोड ईवेंट को पकड़ने के लिए आपको स्टोर ईवेंट में टाई करने की आवश्यकता होगी। चूंकि स्टोर कई स्थानों से डेटा लोड कर सकता है, इसलिए आपको ग्रिड स्टोर की फ़ेच विधि पर एक पूर्ण कार्यान्वित करने की आवश्यकता होगी।

grid.store.fetch({onComplete : function (items) { // Do something }});

आप भी कार्यक्रम को प्रोग्राम बना सकते हैं, अपने समापन श्रोता के साथ कॉल करा सकते हैं, और जब आप स्टोर के परसंपूर्ण श्रोता में आइटम्स के संशोधन को पूरा कर लें, तो myGrid.setStore (myStore) को कॉल करें;




_onFetchComplete में एक ईवेंट _onFetchComplete जो आप dojo.connect साथ कनेक्ट कर सकते हैं। ध्यान दें कि यह _ साथ शुरू होता है, इसलिए यह एक निजी / सुरक्षित प्रकार की घटना माना जाता है और इसके व्यवहार नए Dojo संस्करणों में बदल सकते हैं। मुझे पता है कि यह डोजो 1.6 में अच्छी तरह से काम करता है।




मुझे वही समस्या हुई है और यह पता चला है कि अशक्त त्रुटि थी क्योंकि मैंने उस html को नहीं बचाया था जिसके साथ मैं काम कर रहा था।

यदि पृष्ठ लोड होने के बाद संदर्भित तत्व को सहेजा नहीं गया है, तो 'शून्य' है, क्योंकि दस्तावेज़ में लोड के समय यह शामिल नहीं है। Window.onload का उपयोग डिबगिंग में भी मदद करता है।

मुझे आशा है कि यह आपके लिए उपयोगी था।