JS फ़ाइल में जावास्क्रिप्ट के माध्यम से ASP.NET नियंत्रण का क्लाइंट आईडी मान कैसे प्राप्त करें?


सामग्री पृष्ठ में जेएस फ़ाइल में जावास्क्रिप्ट के माध्यम से एएसपीनेट नियंत्रण का क्लाइंट आईडी मान कैसे प्राप्त करें और जेएस फ़ाइल को उसी पृष्ठ से संदर्भित किया जाता है।
मैं .net फ्रेमवर्क 3.5 में काम कर रहा हूँ। मैं नीचे दिए अनुसार क्लाइंट आईडी मान प्राप्त कर रहा हूं
document.getElementById(‘<%=txtDDAExpiryDate.ClientID%>‘).मान;. मुझे नीचे अपवाद मिल रहा है
ध्यान में न आया लेखन त्रुटि: शून्य के गुण नहीं पढ़ सकता (‘मान’ पढ़ रहा है)

मैंने क्या प्रयास किया है:

कोड नीचे दिया गया है

document.getElementById('<%=txtDDAExpiryDate.ClientID%>').value;

समाधान 1

हमेशा दस्तावेज़ पढ़कर शुरुआत करें: दस्तावेज़: getElementById() विधि – वेब एपीआई | एमडीएन[^] – यह बिल्कुल स्पष्ट है कि यह एक रिटर्न देता है null जब उस आईडी वाला तत्व मौजूद नहीं है:

उद्धरण:

निर्दिष्ट आईडी से मेल खाने वाले DOM तत्व ऑब्जेक्ट का वर्णन करने वाला एक तत्व ऑब्जेक्ट, या दस्तावेज़ में कोई मिलान तत्व नहीं मिलने पर शून्य।

तो अब आपको यह जानना होगा कि वास्तव में क्या – txtDDAExpiryDate.ClientID सर्वर से लौट रहा है, तो उसे अपने HTML से मैन्युअल रूप से मिलान करने का प्रयास करें।
वह आपको बताएगा कि समस्या कहां है: सर्वर साइड या क्लाइंट साइड।
और जब आप यह जानते हैं, तो आपको इसे हल करने में सक्षम होना चाहिए।

पता लगाने के लिए डिबगर का उपयोग करें (या बस इसे पृष्ठ पर लिखें)।

क्षमा करें, लेकिन हम आपके लिए ऐसा नहीं कर सकते – यह आपके लिए एक नया (और बहुत, बहुत उपयोगी) कौशल सीखने का समय है: डिबगिंग!

समाधान 2

क्योंकि HTML दस्तावेज़ में आईडी को अद्वितीय माना जाता है, वेबफॉर्म किसी भी सर्वर-साइड नियंत्रण की आईडी को उसके पदानुक्रम में प्रत्येक “नामकरण कंटेनर” की आईडी के साथ जोड़कर “व्यवस्थित” करता है।

यदि आप .NET 4.x पर जा सकते हैं, तो आप इसका उपयोग करने में सक्षम हो सकते हैं क्लाइंटआईडीमोड संपत्ति[^] उस व्यवहार को ओवरराइड करने के लिए.

अन्यथा, आपको अपने तत्व की पहचान करने का दूसरा तरीका ढूंढना होगा। उदाहरण के लिए:

जावास्क्रिप्ट
document.querySelector("*[id$='_txtDDAExpiryDate']")

दस्तावेज़: क्वेरी चयनकर्ता() विधि – वेब एपीआई | एमडीएन[^]

コメント

タイトルとURLをコピーしました