मेरे पास ऐसा पृष्ठ है जिसमें पृष्ठ लोड पर चलाने के लिए कुछ जावास्क्रिप्ट है। ने कहा कि जावास्क्रिप्ट को सर्वरकंट्रोल के क्लाइंट-साइड घटक का पता लगाने की आवश्यकता है, जो यह $ find() के साथ करता है।
बेशक, अगर मैं पेज पर सीधे मेरी कोड फेंकना, वह निष्पादित के रूप में पेज पढ़ा जा रहा है, और विफल रहता है, क्योंकि कुछ भी नहीं पर निर्भर करता है अभी तक आरंभ नहीं हो जाता।
अगर मैं एक Pageload() फ़ंक्शन के अंदर अपने कोड डाल, यह ठीक चलाता है क्योंकि Pageload नामित किसी भी समारोह के लिए asp.net स्वचालित रूप से तारों को एक ऑनलोड हैंडलर()। समस्या यह है कि मुझे वास्तव में पेज लोड() समाधान पसंद नहीं है - मुख्य रूप से क्योंकि यह एक वैश्विक नाम है। अगर मैं पेज लोड() का उपयोग करके कुछ कोड करता हूं, तो मुझे पता है कि कुछ अन्य प्रोग्रामर दृष्टिकोण की प्रतिलिपि बनाने जा रहे हैं, कहीं अनुपयुक्त हैं, और हम एक ऐसे पृष्ठ के साथ समाप्त होने जा रहे हैं जिसमें दो या दो से अधिक अलग पृष्ठ लोड() फ़ंक्शन शामिल हैं, और नतीजा रहस्यमय त्रुटियों का एक गुच्छा होगा जो हमेशा ट्रैक करने के लिए ले जाएगा।
तो, मैं एक गुमनाम समारोह jQuery के $ (document) .ready के लिए पारित() के अंदर अपने कोड डाल दिया। यह विफल रहता है, क्योंकि यह सर्वरकंट्रोल के क्लाइंट-साइड घटक मौजूद होने से पहले चलता है।
तो, मैं एक गुमनाम समारोह Sys.Application.add_load द्वारा लिए पारित() के अंदर अपने कोड डाल दिया। यह भी विफल रहता है, क्योंकि Sys अपरिभाषित है।
तो मैं अंत में Sys.Application.add_load() के अंदर अपने कोड डालने पर व्यवस्थित, और फिर उस एक समारोह $ से बुलाया अंदर (document) .ready() डाल दिया। यह काम करता है, लेकिन यह पेज लोड() के रूप में लगभग दिल की धड़कन देता है।
<script type="text/javascript">
$(document).ready(function(){
Sys.Application.add_load(function(){
var component = $find(<clientid>);
if (component) { <do something> }
});
});
</script>
इसे संभालने का एक बेहतर तरीका होना चाहिए।
कोई भी विचार?
ऐसा लगता है कि हमारे लिए काम करता है। –