2010-08-16 12 views
60

मैं एएसपी.Net ड्रॉपडाउनलिस्ट नियंत्रण प्रोग्रामेटिक रूप से selecteditem विशेषता सेट करना चाहता हूं।प्रोग्रामिंग के लिए चयनित ड्रॉपडाइटल सूची

तो मैं चयनित आइटम को सेट करने के लिए ड्रॉपडाउन सूची नियंत्रण में एक मान पास करना चाहता हूं जहां आइटम पास किए गए मान के बराबर है।

+2

क्या आपका मतलब है 'myList.SelectedValue = someStringValue;'? – kbrimington

उत्तर

87

सूची मानना ​​पहले से ही डेटा बाध्य है, आप बस अपनी ड्रॉपडाउन सूची पर SelectedValue संपत्ति सेट कर सकते हैं।

list.DataSource = GetListItems(); // <-- Get your data from somewhere. 
list.DataValueField = "ValueProperty"; 
list.DataTextField = "TextProperty"; 
list.DataBind(); 

list.SelectedValue = myValue.ToString(); 

myValue चर के मूल्य संपत्ति अपने नियंत्रण डेटा बाइंडिंग में DataValueField में निर्दिष्ट में मौजूद करने की आवश्यकता होगी।

अद्यतन: myValue का मूल्य ड्रॉपडाउन सूची विकल्प यह ड्रॉपडाउन सूची में पहले विकल्प का चयन करने के लिए लागू हो जाएगी साथ एक मूल्य के रूप में मौजूद नहीं है।

DDL.SelectedIndex = DDL.Items.IndexOf(DDL.Items.FindByText("PassedValue")); 

या

DDL.SelectedIndex = DDL.Items.IndexOf(DDL.Items.FindByValue("PassedValue")); 
+4

नहीं, चयनित वैल्यू केवल पढ़ने के लिए नहीं है: "चयनित आइटम का मूल्य सूची नियंत्रण में प्राप्त करता है, या सूची नियंत्रण में आइटम का चयन करता है जिसमें निर्दिष्ट मान होता है।" – chris4600

+0

यह सिर्फ मेरे लिए काम करता है, यह चुना गया है कि मैंने किस मूल्य को 'चयनित चयन' दिया है, इस पर कौन सा तत्व पूर्व-चयनित आधार होना चाहिए। – ptf

28

यहाँ कोड मैं खोज रहा था हैका प्रकारint है।

+0

यह मूल रूप से अधिक कोड के साथ एक ही चीज़ कर रहा है। यहां तक ​​कि यदि चयनित मान सूची में किसी आइटम के रूप में मौजूद नहीं है, तो यह उसके चयनित मान के रूप में पहले विकल्प पर डिफ़ॉल्ट रूप से डिफ़ॉल्ट होता है। –

55

ddlData.SelectedIndexint मान DropDown में विशिष्ट मूल्य का चयन करने देगा::

ddlData.SelectedIndex=ddlData.Items.IndexOf(ddlData.Items.FindByText("value")); 

return

4

ठीक है अगर मैं सही ढंग से आपका प्रश्न समझ गया। किसी दिए गए dropdownlist के लिए मूल्य निर्धारित करने के लिए समाधान हो जाएगा:

dropdownlist1.Text="Your Value"; 

यह तभी मूल्य dropdownlist के डेटा स्रोत में विद्यमान है काम करेंगे।

4

आप एक अभिव्यक्ति के आधार पर अपनी सूची आइटम का चयन करने की जरूरत है:

foreach (ListItem listItem in list.Items) 
{ 
    listItem.Selected = listItem.Value.Contains("some value"); 
} 
1
var index = ctx.Items.FirstOrDefault(item => Equals(item.Value, Settings.Default.Format_Encoding)); 
ctx.SelectedIndex = ctx.Items.IndexOf(index); 

या

foreach (var listItem in ctx.Items) 
    listItem.Selected = Equals(listItem.Value as Encoding, Settings.Default.Format_Encoding); 

काम करना चाहिए .. खासकर जब विस्तारित रेड नियंत्रण का उपयोग, जिसमें FindByText/मूल्य यहां तक ​​कि अस्तित्व में नहीं है!

-3
  ddlemployee.DataSource = ds.Tables[0]; 
      ddlemployee.DataTextField = "Employee Name"; 
      ddlemployee.DataValueField = "RecId"; 
      ddlemployee.DataBind(); 
      ddlemployee.Items.Insert(0, "All"); 
+0

अपने उत्तर में सुधार करने पर विचार करें। _ [कोड-केवल उत्तर 'बहुत कम गुणवत्ता' के अंतर्गत आ सकते हैं ... और उम्मीदवारों को हटाने के लिए हैं ....हमने हमेशा कहा है कि हम कोड फैक्ट्री नहीं हैं। हम लोग हैं जो दूसरों को मछली के लिए सिखाते हैं। कोड-केवल उत्तर केवल एक व्यक्ति को एक दिन के लिए खिलाते हैं] (http://meta.stackexchange.com/questions/148272/is-there-any-benefit-to-allowing-code-only-answers-while-blocking-code -ऑनली-क्विज़) _ – MickyD

1
ddList.Items.FindByText("oldValue").Selected = false; 
ddList.Items.FindByText("newValue").Selected = true; 
+0

स्टैक ओवरव्लो में आपका स्वागत है। अपना उत्तर शर्त बनाने के लिए - आपके द्वारा पोस्ट किए गए कोड पर कुछ टिप्पणियां जोड़ें। बिना किसी स्पष्टीकरण के कोड का ब्लॉक पोस्ट करना उचित उत्तर नहीं है। – Artemix

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