2009-09-28 11 views
6

मैं किसी चयनित रेडियो बटन के मूल्य तक पहुंचने का प्रयास कर रहा हूं। मेरे पास उप हेडर द्वारा अलग किए गए रेडियो बटन की एक सूची है (इसलिए मैंने रेडियोलिस्ट का उपयोग क्यों किया)गतिशील रूप से बनाए गए नियंत्रणों के मूल्य तक पहुंच C# asp.net

मुझे नहीं पता कि चयनित मूल्य का उपयोग कैसे किया जाए क्योंकि मुझे यकीन नहीं है कि यह गतिशील होने के साथ क्या नाम दिया गया है।

निम्न कोड लूप के लिए है और रेडियो विकल्प आउटपुट करता है। सभी विकल्प एक आवश्यक उपयोगकर्ता चयन के लिए हैं।

//add list to radio button list 
RadioButton button1 = new RadioButton { 
GroupName = "myGroup", 
Text = singleType.appTypeName, 
ID = singleType.appTypeID.ToString() 
}; 
radioArea.Controls.Add(button1); 
myLabel = new Label(); 
myLabel.Text = "<br />"; 
radioArea.Controls.Add(myLabel); 

इस तरह im इसे उपयोग करने की कोशिश कर रहा:

RadioButton myButton = (RadioButton) radioArea.FindControl("myGroup"); 

मुझे पता है यह एक बहुत ही ज्यादा पीएचपी मानसिकता में अभी भी बहुत सरल लेकिन im हो सकता है और किसी भी मदद की सराहना करनी चाहिए।

धन्यवाद

उत्तर

9

हाय यह मुझे लगता है जैसे आप रेडियो बटन नियंत्रण के विभिन्न गुणों और रेडियो बटन को सही ढंग से उत्पन्न करने के तरीके के बारे में थोड़ा उलझन में हैं।

आईडी संपत्ति यहां महत्वपूर्ण है।

आपको आईडी प्रॉपर्टी को एक अद्वितीय स्ट्रिंग पर सेट करना चाहिए जिसका उपयोग आप पोस्टबैक पर नियंत्रण तक पहुंचने के लिए करते हैं।

ग्रुपनाम एक रेडियो बटन की मानक नाम संपत्ति के लिए सिर्फ एक उपनाम है और इसका उपयोग तब किया जाता है जब कोई उपयोगकर्ता समूह में रेडियो बटन पर क्लिक करता है तो केवल एक रेडियो बटन का चयन किया जा सकता है।

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

//add list to radio button list 
RadioButton radioButton = new RadioButton(); 
radioButton.GroupName = "radioGroup"; 
radioButton.Text = singleType.appTypeID.ToString(); 
radioButton.ID = singleType.appTypeName; 

radioArea.Controls.Add(radioButton); 

Label label = new Label(); 
label.Text = "<br />"; 
radioArea.Controls.Add(label); 

ऊपर के उदाहरण मैं आईडी के रूप में निर्दिष्ट किया है singleType.appTypeName में, यह सोचते हैं कि यह अद्वितीय है।

फिर पोस्टबैक पर मूल्य पुनर्प्राप्त करने के लिए ऐसा करते हैं, assumnig कि singleType.appTypeName = "mySuperApp":

RadioButton radioButton = (RadioButton) radioArea.FindControl("mySuperApp"); 

अब आप जो GroupName यह है की जाँच करने के radiobutton चर का उपयोग कर सकते, इसे मूल्य और चेक है कि यह चेक किया गया है।

आपको पता लगाने के लिए रेडियो बटन पर लूप की आवश्यकता होगी कि कौन सी जांच की गई है। ऐसा करने का एक आसान तरीका रेडियो एरिया के बाल नियंत्रण पर लूपिंग है और यह देखने के लिए ईक नियंत्रण की जांच कर रहा है कि यह एक रेडियो बटन है और यदि यह चेक किया गया है। एक और विकल्प प्रत्येक आईडी को एक उपसर्ग यानी आईडी = "RAD _" + सिंगल टाइप टाइप करें और अनुरोध ऑब्जेक्ट पर लूप देना और सही प्रत्यय के साथ प्रत्येक से मेल खाना है।

+0

'System.Web.UI.WebControls.RadioButton' में 'वैल्यू' – Andrew

+0

व्हाउप्स की परिभाषा नहीं है! अरे शर्म की बात है! –

+0

मेरे मस्तिष्क और उंगलियों को सिंक त्रुटि में नहीं –

3

FindControl विधि का प्रयोग कर रहे हैं, आप इसे ID कि जब आप इसे बनाया नियंत्रित करने के लिए सौंपा गया था पारित करने के लिए उम्मीद है।

तो अपने उदाहरण के लिए RadioButton.ID को singleType.appTypeID.ToString()

आशा इस मदद करता है बराबर होना चाहिए।

+0

जब मैं कोड के स्रोत कोड को देखता हूं तो एकल टाइप टाइप किया जाता है। AppTypeID.ToString() प्रत्येक विकल्प का मान आईडी नहीं है। कोई विचार? – Andrew

+0

आपका कोड रेडियोधन की आईडी को एकल टाइप करने के लिए असाइन कर रहा है। AppTypeID.ToString()। आपको अपने FindControl() कॉल में उस सटीक आईडी की खोज करनी होगी। – womp

+0

@SocialAddict जब आप रेडियोबूटन देखते हैं तो उन्हें HTML में प्रस्तुत किया जाता है आईडी क्या सेट हैं? – rocka

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