2015-12-17 8 views
7

मैं अपने पृष्ठ पर सभी ड्रॉपडाउनलिस्ट प्राप्त करने का प्रयास कर रहा हूं, और उनमें से प्रत्येक में चयनित आइटम टेक्स्ट/मान। लेकिन मुझे कुछ याद आ रहा है।सभी ड्रॉपडाउन-सूचियों के लिए चयनित विकल्प प्राप्त करें

foreach (DropDownList dr in this.Page.Form.Controls.OfType<DropDownList>()) { 
    foreach (ListItem li in dr.Items) { 
      if (li.Selected) { 
      //put the selected items value/text into something. 
     } 
    } 
} 

ऐसा करने का कोई विचार?

संपादित करें: इसे और स्पष्ट करने के लिए। मेरे पास DropDownLists की एक यादृच्छिक राशि है, जहां मैं 1 विकल्प पीआर ड्रॉपडाउन सूची का चयन कर सकता हूं। जब मैं एक बटन दबाता हूं, तो मुझे प्रत्येक ड्रॉपडाउनलिस्ट में जो कुछ चुना गया है, उससे मुझे जानकारी प्राप्त करने की आवश्यकता होती है। (DropDownLists पर कोई आईडी नहीं है, कि एक यादृच्छिक संख्या है)।

+3

आप जिस समस्या का सामना कर रहे हैं? कोई अपवाद? – Irshad

+1

मुझे गैर चयनित नहीं मिल रहा है, यहां तक ​​कि, मैंने अपने ड्रॉपडाउन में एक सूचीकरण चुना है। – user3314032

+1

@ user3314032 - आपका मतलब है कि आप इन ड्रॉपडाउन को गतिशील रूप से बना रहे हैं? यदि ड्रॉपडाउन के मार्कअप कोड को नहीं दिखाया गया है। –

उत्तर

0
protected void Button1_Click(object sender, EventArgs e) 
    { 
     List<DropDownList> lst = new List<DropDownList>(); 
     GetDropDownControls(GetListOfControlCollection(this.Form.Controls), ref lst); 

     foreach (DropDownList item in lst) 
     { 
      var selectedValue = item.SelectedValue; 
      //to do something with value 
     } 

    } 

     void GetDropDownControls(List<Control> controls, ref List<DropDownList> lst) 
    { 
     foreach (Control item in controls) 
     { 
      if (item.Controls.Count == 0 && item is DropDownList) 
       lst.Add((DropDownList)item); 
      else 
       if (item.Controls.Count > 0) 
        GetDropDownControls(GetListOfControlCollection(item.Controls), ref lst); 
     } 
    } 

    List<Control> GetListOfControlCollection(ControlCollection controls) 
    { 
     List<Control> result = new List<Control>(); 
     foreach (Control item in controls) 
     { 
      result.Add(item); 
     } 
     return result; 
    } 
+3

हालांकि यह शायद एक अच्छा समाधान है, कृपया यह बताने की कोशिश करें कि आप क्या कर रहे हैं और यह * पूछने वाले व्यक्ति के लिए सही समाधान क्यों है। –

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