2008-10-02 6 views
15

jquery का उपयोग करके मेरी पहली महत्वपूर्ण लिपि को लागू करने में मुझे पृष्ठ पर एक विशिष्ट वेब-नियंत्रण खोजने की आवश्यकता थी। चूंकि मैं डॉटनेटनेट के साथ काम करता हूं, इसलिए क्लाइंट आईडी को नियंत्रित करने की कोई गारंटी नहीं है क्योंकि कंटेनर नियंत्रण साइट से साइट पर बदल सकता है। मैं एक विशेषता चयनकर्ता का उपयोग कर समाप्त हुआ जो एक आईडी की तलाश करता है जो नियंत्रण सर्वर सर्वर के साथ समाप्त होता है।jQuery का उपयोग कर एएसपी.Net नियंत्रण खोजने के लिए सबसे अच्छी विधि क्या है?

$("select[id$='cboPanes']") 

ऐसा लगता है कि यह सबसे अच्छा तरीका नहीं हो सकता है। क्या इसे करने का और कोई तरीका है?


@Roosteronacid - मैं नियंत्रण मैं चाहता हूँ हो रही है, वहीं मैं एक दिया प्रौद्योगिकी/भाषा के लिए मुहावरों पालन करने की कोशिश। जब मैं सी # में प्रोग्राम करता हूं, तो मैं इसे इस तरह से करने की कोशिश करता हूं कि सी # सुविधाओं का सबसे अच्छा फायदा उठाता है। चूंकि यह वास्तव में jQuery का उपयोग करने का मेरा पहला प्रयास है, और चूंकि इसका उपयोग 10 हजारों उपयोगकर्ताओं द्वारा किया जाएगा, इसलिए मैं यह सुनिश्चित करना चाहता हूं कि मैं कोड बना रहा हूं जो दूसरों के लिए भी एक अच्छा उदाहरण है।

@toohool - यह निश्चित रूप से काम करेगा, लेकिन दुर्भाग्य से मुझे प्रदर्शन कारणों से जावास्क्रिप्ट को अलग-अलग फ़ाइलों में रखना होगा। यदि आप प्रत्येक "पृष्ठ" गतिशील रूप से जेनरेट किए जाने के बाद से जावास्क्रिप्ट को रेखांकित करते हैं तो आप वास्तव में कैशिंग का बहुत अच्छा लाभ नहीं उठा सकते हैं। मैं क्लाइंट को बार-बार एक ही जावास्क्रिप्ट भेजना समाप्त कर दूंगा क्योंकि पेज पर अन्य सामग्री बदल गई है।


@Roosteronacid - मैं नियंत्रण मैं चाहता हूँ हो रही है, वहीं मैं एक दिया प्रौद्योगिकी/भाषा के लिए मुहावरों पालन करने की कोशिश। जब मैं सी # में प्रोग्राम करता हूं, तो मैं इसे इस तरह से करने की कोशिश करता हूं कि सी # सुविधाओं का सबसे अच्छा फायदा उठाता है। चूंकि यह वास्तव में jQuery का उपयोग करने का मेरा पहला प्रयास है, और चूंकि इसका उपयोग 10 हजारों उपयोगकर्ताओं द्वारा किया जाएगा, इसलिए मैं यह सुनिश्चित करना चाहता हूं कि मैं कोड बना रहा हूं जो दूसरों के लिए भी एक अच्छा उदाहरण है।

@toohool - यह निश्चित रूप से काम करेगा, लेकिन दुर्भाग्य से मुझे प्रदर्शन कारणों से जावास्क्रिप्ट को अलग-अलग फ़ाइलों में रखना होगा। यदि आप प्रत्येक "पृष्ठ" गतिशील रूप से जेनरेट किए जाने के बाद से जावास्क्रिप्ट को रेखांकित करते हैं तो आप वास्तव में कैशिंग का बहुत अच्छा लाभ नहीं उठा सकते हैं। मैं क्लाइंट को बार-बार एक ही जावास्क्रिप्ट भेजना समाप्त कर दूंगा क्योंकि पेज पर अन्य सामग्री बदल गई है।

+0

+1 # 1 "jQuery सूची नियंत्रण" के लिए गूगल – jrcs3

उत्तर

2

नियंत्रण पर मार्कर वर्ग का उपयोग करें, और jQuery के माध्यम से चुनें।

+0

, अगर आप उचित अर्थशास्त्र के लिए एक स्टिकर हैं (वर्गों के रूप में वर्गों का उपयोग करते हुए और पहचानकर्ता नहीं), यह आदर्श नहीं है। साथ ही, कक्षा के नाम से चयन आईडी द्वारा चयन की तुलना में बहुत धीमी है। –

8
$("#<%= cboPanes.ClientID %>") 

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

+0

हाँ यह बहुत अच्छा है, अगर आपको पृष्ठ पर और भी अनावश्यक पाठ की आवश्यकता है और एक और भी असहज पढ़ने का अनुभव है। – ppumkin

2

थोड़ा अधिक महंगा होने के अलावा, प्रदर्शन के अनुसार, मैं उस चयनकर्ता का उपयोग करने में कुछ भी गलत नहीं देख सकता। आख़िरकार; आप उन नियंत्रणों को प्राप्त कर रहे हैं जिन्हें आप एक्सेस करना चाहते हैं।

3

एक चीज जो मैंने पिछले (जावास्क्रिप्ट में jQuery नहीं) में किया है, उपरोक्त मेरे जावास्क्रिप्ट आयात में, गतिशील नियंत्रण आईडी का उत्पादन करता है जो टोहूल की सिफारिश करता है और उन्हें उन स्क्रिप्ट को असाइन करता है जिन्हें मैं अपनी स्क्रिप्ट आयात में संदर्भित करता हूं ।

कुछ इस तरह, आप कैशिंग का लाभ उठाने और अभी भी सटीक ग्राहक आईडी के लिए आप सक्षम करने के लिए अनुमति चाहिए: एक ओर जहां यह काम करता है

<head> 
    <script type="text/javascript> 
     var cboPanesID = <%= cboPanes.ClientID %>; 
    </script> 

    <!-- this JS import references cboPanesID variable declared above --> 
    <script src="jquery.plugin.js"></script> 
</head> 
संबंधित मुद्दे

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