2009-08-13 10 views
13

में JQuery का उपयोग कर मैं सिर्फ वी.एस. 2008 में JQuery का उपयोग शुरू कर दिया है, और अब तक मुझे यह पसंद है! लेकिन, मैं इस बारे में उलझन में हूं कि वेबपृष्ठ पर एएसपीनेट नियंत्रणों का चयन करने के लिए मुझे JQuery का उपयोग कैसे करना चाहिए।चुनना आईडी विशेषता द्वारा ASP.NET

उदाहरण के लिए, मैं निम्नलिखित कोड (सिर्फ एक नकली) है:

<asp:textbox id="txtSomeData1" runat="server" text="Some Data!!"></textbox> 

अब, अगर मैं पाठ बॉक्स का चयन करें और बदलने के लिए JQuery का उपयोग करना चाहते यह पाठ करने के लिए "कुछ अधिक डेटा है !! ", तो मैं की तरह कुछ करने के लिए होता है:

$('input#ctl00_ContentPlaceHolder1_txtSomeData1').val('Some More Data!!'); 

कौन सा है, काफी स्पष्ट रूप से, क्योंकि मैं गड़बड़ करने के लिए यह पता लगाने की क्या नियंत्रण की आईडी के बाद यह करने के लिए प्रदान की गई है होने के साथ नहीं करना चाहती कष्टप्रद है वेबपेज (ctl00_ContextPlaceHolder ... blah blah blah)।

वहाँ एक रास्ता है कि मैं इसके बारे में आईडी का उपयोग किए बिना पाठ बॉक्स का चयन कर सकते है? साथ ही, मुझे पता है कि आप कक्षा के नाम से चयन कर सकते हैं, लेकिन यदि आपके द्वारा चुने गए नियंत्रण में कक्षा नहीं है तो इससे अधिक मदद नहीं मिलती है।

क्या मुझे बस कुछ याद आ रहा है?

सिर्फ दोहराते हैं: मैं इनपुट टैग का चयन करने के लिए एक वर्ग का उपयोग नहीं करना चाहते हैं !! मैं आईडी "txtSomeData1" आईडी का उपयोग करना चाहता हूं और वेबपृष्ठ पर प्रदान की जाने वाली लंबी आईडी नहीं।

+0

यदि आपको जेनरेट किए गए पृष्ठ में तत्व की आईडी बदलनी है, तो आपको एएसपी पक्ष पर आउटपुट बदलना होगा। तो यह एक jquery सवाल से अधिक एएसपी सवाल है। – airportyh

+0

तदनुसार शीर्षक में एक संपादन किया। – Jagd

उत्तर

14

क्या आप क्या करना चाहते है या तो:

$("input[id$='_txtSomeData1']").val()..... 

या आप पाठ बॉक्स के लिए एक वर्ग या कस्टम विशेषता है कि आप

+0

अच्छा एक jaimedp। +1 –

+0

मैं इसे काम पर नहीं ला सकता, लेकिन मुझे लगता है कि यह वही है जो मैं ढूंढ रहा हूं! मैंने अभी तक कस्टम विशेषता का प्रयास नहीं किया है। $ = एक वाइल्डकार्ड मैच है? – Jagd

+0

यह वही है जो मैंने कोशिश की: $ ("इनपुट [आईडी $ = '_ txtSomeData1'")। वैल ('कुछ और डेटा !!'); – Jagd

0

चयनकर्ताओं का उपयोग करने ... शायद जोड़ने एक वर्ग है कि आप क्या करना चाहते हैं के बहुत सारे हैं।

http://docs.jquery.com/Selectors

1

पर चयन कर सकते हैं जोड़ सकता है यह एक बड़ा शिकायत समुदाय एएसपी के साथ करता है नेट वेब फॉर्म। एएसपी.Net 4.0 में आपको अपनी आईडी का नियंत्रण वापस मिल जाता है, ऐसा लगता है कि आप इसे कच्चे HTML में लिख चुके हैं। वैकल्पिक रूप से, .NET 4.0 के बिना, आप ASP.Net MVC का उपयोग कर सकते हैं, जो अधिकांश भाग के लिए सर्वर नियंत्रण का उपयोग नहीं करता है, इसलिए आपके पास समस्या नहीं होगी।

लेकिन happytime हैरी कहते हैं की तरह, एक वर्ग को जोड़ने हो सकता है अगर आप चाहते हैं आप वेब फ़ॉर्म तथा jQuery के साथ काम कर रहे हैं।

+0

बहुत बढ़िया! मुझे नहीं पता था कि 4.0 के साथ घबराहट करने वाली आईडी को परेशान नहीं किया जाएगा। ये अच्छी खबर है। – Jagd

0

आप किसी भी नियंत्रण जिनका एकमात्र उद्देश्य एक jQuery चयनकर्ता में प्रयोग के लिए है करने के लिए 'मार्कर' कक्षाएं जोड़ सकते हैं। , यही कारण है कि पेड़ पदानुक्रम नेविगेट के साथ ("$(element).children('.myClass').show()" की तरह कुछ आईडी के बिना यह करने के लिए एक अच्छा तरीका हो सकता है।

Btw, http://visualjquery.com/ jQuery एपीआई आदि

+0

विजुअलजक्वरी बहुत बढ़िया है। अगर वे केवल वर्तमान संस्करण में अपडेट करेंगे जो अब 6 महीने के लिए बाहर हो गया है ... – phairoh

0

आप उपयोग कर सकते हैं देखने के लिए एक शानदार तरीका है तत्व [आईडी $ = पहचानकर्ता] नोटेशन, जो आपके द्वारा निर्दिष्ट पाठ के साथ समाप्त होने वाली आईडी को देखता है (यह वह आईडी है जिसे आप एएसपीएक्स मार्कअप में निर्दिष्ट करते हैं)। यहां एक उदाहरण दिया गया है कि आप इसका उपयोग कैसे कर सकते हैं (स्लाइड # 30 देखें): Building intranet applications with ASP.NET AJAX and jQuery

7

यदि जावास्क्रिप्ट समान है।aspx फ़ाइल, आप कर सकते हैं:

$('<%= txtSomeData1.ClientID %>').val('Some More Data!!'); 
+0

जावास्क्रिप्ट अपनी फ़ाइल में है (यानी - गैर-घुसपैठ)। लेकिन जैसा कि मैंने वीडीएक्स से कहा था, यह एक बहुत ही आकर्षक और उपयोग में आसान समाधान है; हालांकि, मैं जिसकी तलाश में नहीं हूं। – Jagd

+0

असल में, यह $ ('# <% = txtSomeData1.ClientID%>') होगा। वैल ('कुछ और डेटा !!'); (# साइन नोट करें - यह कुछ ऐसा है जो मैं कभी-कभी खुद को भूल जाता हूं) –

+1

एक तकनीक जिसे मैंने उपयोग किया है, जावास्क्रिप्ट ऑब्जेक्ट्स में स्क्रीन घटकों को मैप करना है; .aspx फ़ाइल पर आप केवल मानचित्रण (संपत्ति के लिए तत्व आईडी) कर सकते हैं, फिर आप उन ऑब्जेक्ट्स को .js फ़ाइलों पर उपयोग कर सकते हैं – BlackTigerX

1

आप अपने स्वयं के .js के लिए जावास्क्रिप्ट externalise करने जा रहे हैं फ़ाइल आप आईडी में या तो मुश्किल कोडिंग (सबसे कुशल), कुछ नियमित अभिव्यक्ति चयनकर्ता या उपयोग करने के साथ फंस रहे हैं कक्षा नाम चयनकर्ता द्वारा अक्षम।

हालांकि अगर यह नेट नियंत्रण के रूप में एक ही फाइल में है कि आप हमेशा इस्तेमाल कर सकते हैं $('<%=txtSomeData1.ClientID %>')

+0

मेरे पास js फ़ाइल में जावास्क्रिप्ट है और मैं इसे इस तरह से रखूंगा, लेकिन मुझे यह स्वीकार करना होगा कि आपके समाधान के लिए कुछ अपील है। – Jagd

0

निम्न सिंटैक्स का उपयोग करें: $ ("[आईडी * = txtSomeData1]") किसी भी एएसपी नियंत्रण संदर्भ के लिए

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