2010-03-01 8 views
5

मैं मास्टर पेज का उपयोग कर रहा हूं और मैं Google Checkout की अपेक्षा रखने वाले NAME के ​​साथ फ़ॉर्म पर छिपे हुए टेक्स्ट बॉक्स को गतिशील रूप से जोड़ने की कोशिश कर रहा हूं।मास्टर पृष्ठों का उपयोग करते समय आप एक टैग को एक विशिष्ट NAME कैसे असाइन करते हैं?

<input name="item_name_1" type="hidden" value="Widget #1"/> 

VB.NET का उपयोग करना, मैं निम्नलिखित कोड

'Name 
Dim hidName As New HtmlInputHidden 
hidName.ID = "item_name_" & count.ToString 
hidName.Value = item 
Form.Controls.Add(hidName) 

निष्पादित लेकिन क्योंकि मैं मास्टर पृष्ठों का उपयोग करें, नियंत्रण करने के लिए "ctl00 $ ITEM_NAME_1" नाम दिया गया है।

<input name="ctl00$item_name_1" type="hidden" id="ctl00_item_name_1" 

ध्यान दें कि मैं नाम संपत्ति (hidName.Name = "item_name_" & count.ToString) स्थापित करने के लिए करने की कोशिश की है और यह भी गुण सूची में नाम जोड़ने की कोशिश की। इस अजीब तरह से नाम विशेषता पर कोई प्रभाव नहीं पड़ा। जब मैं मास्टर पेज का उपयोग नहीं कर रहा हूं, तो मुझे लगता है कि जब मैं आईडी प्रॉपर्टी सेट करता हूं तो NAME को स्वचालित रूप से वही मान असाइन किया जाता है।

क्या आप मास्टर पेज का उपयोग कर गतिशील रूप से जोड़े गए नियंत्रण के नाम को नियंत्रित करने का कोई तरीका है?

उत्तर

0

दुर्भाग्यवश, सरल उत्तर संख्या है। अधिक कठिन उत्तर हाँ है, लेकिन सीधा तरीके से नहीं। का संभावित हल गुण सेट लेकिन इसके बजाय एक विशेषता के रूप में नाम परिभाषित करने की कोशिश करने के लिए नहीं है:

Dim hidName As New HtmlInputHidden 
hidName.Attributes("Name") = "item_name_" & count.ToString 
hidName.Value = item 
Form.Controls.Add(hidName) 
1

System.Web.UI.WebControls.Control एक संपत्ति ClientIDMode कहा जाता है।
HtmlInputHidden के बजाय, आप HiddenField का उपयोग कर सकते हैं।

'Name 
Dim hidName As New System.Web.UI.WebControls.HiddenField 
hidName.ID = "item_name_" & count.ToString 
hidName.ClientIDMode = System.Web.UI.ClientIDMode.Static 
hidName.Value = item 
Form.Controls.Add(hidName) 

Making text box hidden in ASP.NET और HiddenField Class देखें।

ClientIDMode नेट फ्रेमवर्क 4.0 में पेश किया गया था।
पिछले संस्करणों के लिए, एक विकल्प asp:Literal जोड़ सकता है।

'Name 
Dim hidName As New System.Web.UI.WebControls.Literal 
hidName.Text = _ 
    String.Format("<input name=""item_name_{0}"" type=""hidden"" value=""{1}""/>", _ 
       count, item) 
Form.Controls.Add(hidName) 
+0

क्लाइंट आईडीमोड केवल एएसपीनेट वेबफॉर्म 4.0 में उपलब्ध है, मुझे विश्वास है। –

+0

@ चाड हां, इसे नेट फ्रेमवर्क 4.0 में पेश किया गया था। मैंने जवाब को और अधिक पूरा करने के लिए संशोधित किया, धन्यवाद। – tiago2014

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