2010-08-27 5 views
13

मेरे पास एक एएसपी.NET ड्रॉपडाउन है जिसे मैंने डेटाबेसिंग के माध्यम से भर दिया है। मेरे पास वह पाठ है जो सूचीकरण के लिए प्रदर्शन टेक्स्ट से मेल खाता है जिसे मैं चुना जाना चाहता हूं। मैं स्पष्ट रूप से चयनित टेक्स्ट (केवल गेटटर) का उपयोग नहीं कर सकता और मुझे इंडेक्स नहीं पता है, इसलिए मैं चयनित इंडेक्स का उपयोग नहीं कर सकता। मैं वर्तमान में पूरी सूची के माध्यम से पुनरावृत्ति से आइटम का चयन कर रहा हूँ, नीचे शो के रूप में:आप डिस्प्ले टेक्स्ट के माध्यम से चयनित आइटम को एएसपी.NET ड्रॉपडाउन में कैसे सेट कर सकते हैं?

एएसपी:

<asp:DropDownList ID="ddItems" runat="server" /> 

कोड:

ddItems.DataSource = myItemCollection; 
ddItems.DataTextField = "Name"; 
ddItems.DataValueField = "Id"; 

foreach (ListItem item in ddItems.Items) 
{ 
    if (item.Text == textToSelect) 
    { 
     item.Selected = true; 
    } 
} 

वहाँ सभी के माध्यम से पुनरावृत्ति के बिना यह करने के लिए एक रास्ता है सामान?

+0

यह एक साधारण/बेवकूफ सवाल हो सकता है , लेकिन मैं एएसपी वेबफॉर्म के लिए बिल्कुल नया हूँ। –

+2

निश्चित रूप से सरल या बेवकूफ नहीं है। @kbrimington आपके लिए सही जवाब है। –

उत्तर

39

आप कोशिश कर सकते हैं:

ddItems.Items.FindByText("Hello, World!").Selected = true; 

या:

ddItems.SelectedValue = ddItems.Items.FindByText("Hello, World!").Value; 

ध्यान दें कि, यदि आप कुछ एक आइटम मौजूद अपने प्रदर्शन मिलान का पाठ, आप FindByText() के परिणामों की जांच करने की आवश्यकता हो सकती है कि नहीं कर रहे हैं null के लिए।

ध्यान दें कि मैं एक अतिरिक्त चयन जोड़ने के लिए CheckBoxList जैसे एकाधिक-चयन सूची पर पहला दृष्टिकोण उपयोग करता हूं। मैं सभी चयनों को ओवरराइड करने के लिए दूसरे दृष्टिकोण का उपयोग करता हूं।

+1

आपने मुझे इसे हराया। मैं पहले विकल्प का उपयोग करता हूं। –

+1

नल संदर्भ जांच उन विकल्पों में से किसी एक पर उपयोग की जानी चाहिए। आप गारंटी नहीं दे सकते कि टेक्स्ट वहां होगा। –

+0

@rock: आपकी प्रतिक्रिया के लिए धन्यवाद। मैंने एक नोट जोड़ दिया जब मैं एक दूसरे को चुनता हूं। – kbrimington

1

उपयोग जैसे ListItemCollection वर्ग के FindByText विधि,:

ListItem itemToSelect = ddlItems.Items.FindByText("some text to match"); 

if(itemToSelect != null) 
{ 
    itemToSelect.Selected = true; 
} 
-1

इसके ठीक काम कर रहा ..

drplistcountry.SelectedIndex = 
drplistcountry.Items.IndexOf(drplistcountry.Items.FindByText("--Select--")); 

या

drplistcountry.ClearSelection(); 
drplistcountry.SelectedIndex = 
drplistcountry.Items.IndexOf(drplistcountry.Items.FindByText("--Select--")); 
संबंधित मुद्दे

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