2008-09-17 7 views
8

मैं बस कोई चयनित आइटम के साथ एक एएसपी.NET DropDownList चाहता हूं। चयनित इंडेक्स को -1 तक सेट करना अब तक कोई फायदा नहीं हुआ है। मैं AJAX के साथ फ्रेमवर्क 3.5 का उपयोग कर रहा हूं, यानी यह ड्रॉपडाउनलिस्ट एक अपडेटपेनल के भीतर है। यहाँ मैं क्या कर रहा हूँ है:"DropDownList.SelectedIndex = -1" समस्या

protected void Page_Load (object sender, EventArgs e) 
    { 
     this.myDropDownList.SelectedIndex = -1; 
     this.myDropDownList.ClearSelection(); 

     this.myDropDownList.Items.Add("Item1"); 
     this.myDropDownList.Items.Add("Item2"); 
    } 

पल मैं ड्रॉपडाउन में एक तत्व जोड़ने के लिए, 0 करने के लिए अपने SelectedIndex परिवर्तन और कोई और अधिक -1 पर सेट किया जा सकता है (मैं भी आइटम जोड़ने के बाद SelectedIndex कॉल करने की कोशिश) ... क्या मैं गलत हूं? चींटी मदद की सराहना की जाएगी!

उत्तर

17

मन में नंगे myDropDownList.Items.Add तल पर एक नया ListItem तत्व जोड़ देगा यदि आप इसे एक डेटास्रोत प्रदर्शन के बाद फोन/तो फोन बजाय myDropDownList.Items.Insert विधि का उपयोग जैसे DataBind ...

myDropDownList.DataSource = DataAccess.GetDropDownItems(); // Psuedo Code 
myDropDownList.DataTextField = "Value"; 
myDropDownList.DataValueField = "Id"; 
myDropDownList.DataBind(); 

myDropDownList.Items.Insert(0, new ListItem("Please select", "")); 

शीर्ष पर 'कृपया चुनें' ड्रॉप डाउन आइटम जोड़ देगा।

और जैसा कि बताया गया है कि हमेशा एक ड्रॉप डाउन में चयनित एक आइटम होगा (ListBoxes मुझे अलग मानते हैं), और यदि कोई स्पष्ट रूप से चयनित नहीं होता है तो यह शीर्ष पर डिफ़ॉल्ट होता है।

2

मुझे पूरा यकीन है कि ड्रॉपडाउन में कुछ आइटम चुना जाना चाहिए; मैं आमतौर पर एक खाली सूची आइटम

यह.myDropDownList.Items.Add ("") जोड़ें।

मेरी पहली सूची वस्तु के रूप में, और तदनुसार आगे बढ़ें।

2

चयनित इंडेक्स केवल 1 हो सकता है जब नियंत्रण पहले इंटिलाइज्ड होता है और संग्रह में कोई आइटम नहीं होता है।

एक वेब ड्रॉप डाउन सूची में कोई आइटम नहीं चुना जाना चाहिए जैसा कि आप WinForm पर करेंगे।

मुझे यह सबसे अच्छा लगता है: this.myDropDownList.Items.Add (नई सूची Item ("कृपया चुनें ...", ""));

इस तरह से मैं उपयोगकर्ता है कि वे किसी आइटम का चयन करने की जरूरत है को बताना है, और आप SelectedIndex == 0 जाँच कर सकते हैं

4

मान्य करने के लिए मैं निम्नलिखित पढ़ रहा हूँ: http://msdn.microsoft.com/en-us/library/a5kfekd2.aspx

इसे कहते हैं: करने के लिए चयनित आइटम का इंडेक्स वैल्यू प्राप्त करें, चयनित इंडेक्स प्रॉपर्टी के मान को पढ़ें। सूचकांक शून्य आधारित है। यदि कुछ भी नहीं चुना गया है, तो संपत्ति का मूल्य -1 है।

एक ही समय में, http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.dropdownlist.selectedindex(VS.80).aspx पर हम देखते हैं:

प्रोग्राम के रूप में DropDownList नियंत्रण से चयनित आइटम के सूचकांक तैयार करें या निर्धारित करने के लिए SelectedIndex संपत्ति का उपयोग करें। DropDownList नियंत्रण में हमेशा एक आइटम चुना जाता है। आप एक ही समय में सूची में प्रत्येक आइटम से चयन को साफ़ नहीं कर सकते हैं।

शायद -1 सूचकांक सेट करने के लिए प्राप्त करने के लिए मान्य है? यदि ऐसा है, तो मैं आपके 'पैच' का उपयोग करूंगा।

5

यह की SelectedIndex सेट करने के लिए संपत्ति DropDownList -1 (i। ई संभव है।स्पष्ट चयन) का उपयोग कर क्लाइंट साइड स्क्रिप्ट:

<form id="form1" runat="server"> 
    <asp:DropDownList ID="DropDownList1" runat="server"> 
     <asp:ListItem Value="A"></asp:ListItem> 
     <asp:ListItem Value="B"></asp:ListItem> 
     <asp:ListItem Value="C"></asp:ListItem> 
    </asp:DropDownList> 
    <button id="СlearButton">Clear</button> 
</form> 

<script src="jquery-1.2.6.js" type="text/javascript"></script> 
<script type="text/javascript"> 
    $(document).ready(function() 
    { 
     $("#СlearButton").click(function() 
     { 
      $("#DropDownList1").attr("selectedIndex", -1); // pay attention to property casing 
     }) 

     $("#ClearButton").click(); 
    }) 
</script> 
+3

छोटे टिप्पणी: jQuery 1.6 या नए, $ (ELEM) .attr ("SelectedIndex") के साथ, अब काम नहीं करेगा क्योंकि SelectedIndex एक संपत्ति, नहीं एक विशेषता है। $ (Emel) .prop ("चयनित इंडेक्स", -1) का उपयोग करें। – qualbeen

0

वाक्य रचना नीचे प्रयास करें:

DropDownList1.SelectedIndex = DropDownList1.Items.IndexOf(DropDownList1.Items.FindByValue("Select")) 

या

DropDownList1.SelectedIndex = DropDownList1.Items.IndexOf(DropDownList1.Items.FindByText("SelectText")) 

या

DropDownList1.Items.FindByText("Select").selected =true 

अधिक जानकारी के लिए: http://vimalpatelsai.blogspot.in/2012/07/dropdownlistselectedindex-1-problem.html

2
  1. अपने ड्रॉपडाउन सूची बना सकते हैं और एक प्रारंभिक ListItem
  2. AppendDataBoundItemstrue है, ताकि नए आइटम संलग्न करने के सेट निर्दिष्ट करें।
<asp:DropDownList ID="YourID" DataSourceID="DSID" AppendDataBoundItems="true"> 
<asp:ListItem Text="All" Value="%"></asp:ListItem> 
</asp:DropDownList> 
संबंधित मुद्दे