2009-11-30 18 views
6

के पीछे सी # कोड में ऑनक्लिक ईवेंट जोड़ें मेरे पास दो टेक्स्टबॉक्स हैं tbxProdAc & txtbxHowMany। मैं कोड के पीछे कोड का थोड़ा सा लिखना चाहता हूं ताकि जब मैं एक में टेक्स्ट दर्ज करूं, तो किसी भी पाठ को दूसरे में हटा दिया जा सकता है।विशेषताएँ।

कोई इसे प्राप्त करने के बारे में कैसे जाएगा और मुझे किस घटना में इसे रखना चाहिए?

मैं

txtbxHowMany.Attributes.Add("onclick", "document.getElementById('tbxProdAC').innerText='';");

पेज लोड घटना में

का उपयोग लेकिन सफलता twithout की कोशिश की है ... इस pre_init में होना चाहिए?

जैसा कि आप संभावित रूप से बता सकते हैं, काम पर नौसिखिया पूरा करें।

उत्तर

7

सबसे पहले, सुनिश्चित करें कि जब पृष्ठ उत्पन्न हुआ है कि आईडी अभी भी "tbxProdAC" है, तो यह नेट नियंत्रण है, आईडी बदल दी गई होगी। इस मामले में आप एक वर्ग का उपयोग कर सकते हैं।

, निम्नलिखित का प्रयास करें - यह JQuery का उपयोग करता है - आप शामिल करना है कि

txtbxHowMany.Attributes.Add("onclick", "$('#tbxProdAC').val('');"); 

अपने पृष्ठ के शीर्ष अनुभाग के लिए निम्न जोड़े की आवश्यकता होगी।

<script type="text/javascript" src="jquery.js"></script> 

और तुम यहाँ से JQuery.Js फ़ाइल प्राप्त कर सकते हैं: http://docs.jquery.com/Downloading_jQuery#Download_jQuery

और क्यों: https://stackoverflow.com/questions/308751/why-use-jquery

+0

धन्यवाद पिनो - "आपको यह शामिल करने की आवश्यकता होगी" क्या आपका मतलब है कि jquery लाइब्रेरी में केवल मेरे स्रोत कोड में संदर्भित है या वास्तव में पीछे कोड में? (मोटी प्रश्न के लिए क्षमा चाहते हैं) – MrDean

+1

मैंने अपनी मुख्य पोस्ट अपडेट की है, और आप पूछकर "मोटी" नहीं हैं। हम सभी को प्रश्न पूछने की जरूरत है! यह पूछें कि आपको क्या बेहतर बनाता है। – LiamB

+0

हमम ... मैंने कुछ गलत किया होगा! मैंने प्रदान किए गए कोड का उपयोग किया, पृष्ठ ठीक से लोड हुआ, मैंने डेटा को tbxProdAC में दर्ज किया और फिर txtbxHowMany पर क्लिक किया। इसने परिभाषित किया कि "ऑब्जेक्ट इस प्रॉपर्टी या विधि का समर्थन नहीं करता है" मुझे कहीं गलत होना चाहिए!? मैंने पेज लोड इवेंट में मेरे सी # कोड में '... attributes.add ..' रखा है ... क्या यह सही था या यह मेरे मुख्य स्रोत कोड में जाना चाहिए? आपकी मदद के लिए धन्यवाद। – MrDean

-1

आप डिज़ाइन दृश्य का उपयोग करते हैं, तो आप सिर्फ दोगुना कर सकते हैं अपने बक्सें क्लिक करें और इसे आप के लिए इन तरीकों का निर्माण करेगा:

private void tbxProdAc_TextChanged(object sender, EventArgs e) 
    { 

    } 

    private void txtbxHowMany_TextChanged(object sender, EventArgs e) 
    { 

    } 

तो आप सिर्फ उन्हें इस तरह संपादित करने के लिए है:

 private void tbxProdAc_TextChanged(object sender, EventArgs e) 
    { 
     txtbxHowMany.Clear(); 
    } 

    private void txtbxHowMany_TextChanged(object sender, EventArgs e) 
    { 
     tbxProdAc.Clear(); 
    } 
+0

टेक्स्टबॉक्स .. :: टेक्स्ट चेंज किया गया ईवेंट - जब टेक्स्ट बॉक्स की सामग्री सर्वर के बीच में बदल जाती है तो होती है। – LiamB

1

ASP.NET परिवर्तन आईडी उत्पन्न नियंत्रण की है, तो संभवत: आपके tbxProdAc इसकी होगा आईडी कुछ और बदल गया। आप एप्लिकेशन एक बार, स्रोत देखें अपने

txtbxHowMany.Attributes.Add("onclick", "document.getElementById('tbxProdAC').innerText='';"); 

में चलाने के लिए और आपके नियंत्रण से पहचान जानते हैं और उसके बाद की जगह नई आईडी के साथ "tbxProdAc" की जरूरत है और हाँ यह ऑनलोड काम करेंगे।

1

मुख्य मुद्दा यह है कि जब आपका नियंत्रण किसी अन्य नियंत्रण के अंदर होता है (उदाहरण के लिए एक ग्रिड) asp.net आपके नियंत्रण की आईडी को अद्वितीय नियंत्रण की आईडी रखने के लिए उपसर्ग करता है, उदाहरण के लिए आईडी txbProdAc नहीं होगी लेकिन यह ग्रिडव्यू 1_txbProdAc या यहां तक ​​कि यह भी होगा: पैनल 1_Panel2_gridview1_txProdAc।

यदि आप कोड में जानना चाहते हैं कि कौन सी आईडी asp.net आपके नियंत्रण को 'दे' या 'नाम बदलें' है, तो आप इसका उपयोग कर सकते हैं। क्लाइंट आईडी: txtProdAc.ClientID आपको वह आईडी देगा जो आपको उपयोग करना है जावास्क्रिप्ट/jQuery।

यदि आपने कभी भी अपने txbProdAc को किसी अन्य नियंत्रण में रखा है तो यह अभी भी काम करेगा क्योंकि। क्लाइंट आईडी फ़ंक्शन आपको क्लाइंट स्क्रिप्ट में नियंत्रण के लिए हमेशा सही आईडी देगा।

मिशेल

0

Michel's जवाब पर विस्तार करने के लिए, आप घटना जोड़ने सही किया जाना चाहिए, लेकिन आप आईडी चयनकर्ता अलग ढंग से स्थापित करने के लिए ASP.NET आईडी है कि ग्राहक के लिए भेजा जाता है में परिवर्तन के रूप में की जरूरत है:

txtbxHowMany.Attributes.Add("onclick", string.Format("document.getElementById('{0}').innerText='';", tbxProdAC.ClientID)); 
0

जब हमने वेबपृष्ठ के स्रोत को देखा, तो यह थोड़ा सा जोड़ रहा है, जब यह प्रस्तुत सामग्री दिखाएगा। जहां आईडी अलग होगी। कुछ इस तरह।

txtbxHowMany.Attributes.Add("onclick", "document.getElementById('ctl00_ContentPlaceHolder1_tbxProdAC').innerText='';") 
संबंधित मुद्दे