2010-07-21 5 views
8

क्या एएसपी.NET सर्वर नियंत्रण पर एक विशिष्ट आईडी सेट करना संभव है? हर बार जब मैं एक आईडी निर्दिष्ट करता हूं और वेब फॉर्म को आईडी रूपांतरित करता हूं।एक मास्टरपेज का उपयोग कर रहे एएसपी.नेट वेब फॉर्म में सर्वर नियंत्रण के लिए विशिष्ट आईडी कैसे सेट करें?

उदाहरण के लिए:

<asp:TextBox ID="txtName" runat="server"></asp:TextBox> 

इस में अनुवाद हो जाता:

<input id="ct100_ContentPlaceHolder1_txtName" type="text" /> 

मुझे लगता है कि इस मास्टर पृष्ठों का उपयोग मेरे लिए कर रहा है, लेकिन यदि ऐसा है तो कैसे मुझे यकीन है कि एक नियंत्रण एक होगा हो सकता है कुछ आईडी (जावास्क्रिप्ट उद्देश्यों के लिए)। मैंने ऑटो जावास्क्रिप्ट आईडी को अपने जावास्क्रिप्ट में रखा है और यह काम कर रहा है, लेकिन मैं आईडी का उपयोग करना पसंद करूंगा जिसे मैंने मूल रूप से असाइन किया था। क्या यह संभव है?

उत्तर

4

इस तरह वेब नियंत्रण आईडी संस्करण 4.0 से पहले .NET में है। संस्करण 4.0 क्लाइंट आईडी प्रस्तुत करता है, जिसे आप here के बारे में पढ़ सकते हैं।

आप अपने जे एस में इस तरह somthing उपयोग कर सकते हैं:

var something = '<%= txtName.ClientID %>'; 
21

.NET 4 के साथ शुरू आप कैसे क्लाइंट साइड आईडी की तरह (see this post for details) देखने के बारे में अधिक नियंत्रण है:

(ASP.NET 3.5 इस संस्करण के लिए है)।

विशिष्ट क्लाइंट-साइड आईडी को मजबूर करने के लिए, आपको क्लाइंट आईडीमोड को स्थैतिक पर सेट करना होगा। निम्नलिखित id="txtName" के साथ एक <input> तत्व प्रस्तुत करना होगा:

<asp:TextBox ID="txtName" ClientIDMode="static" runat="server"></asp:TextBox> 

हालांकि यदि आप ऐसा करते हैं, तो आप यह सुनिश्चित करें कि आप समान क्लाइंट साइड आईडी से दो नियंत्रण नहीं है। अन्य विकल्पों के लिए उपरोक्त आलेख देखें।

+0

महान जवाब - धन्यवाद। – Stumblor

2

आप नियंत्रण कोड में जोड़े जाने के बाद वास्तविक आईडी प्राप्त करने के लिए अपने कोडबेंड में Control.ClientID संपत्ति का उपयोग कर सकते हैं।

एएसपीनेट वेबफॉर्म लोगों द्वारा किए गए सुपर कष्टप्रद पसंद।

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