2012-04-27 15 views
11

मार्कअप नहीं:Asp.NET DropDownList SelectedItem.Value बदलते

  <div style="float:left;margin-top:15px;width:80px"> 
       <asp:DropDownList ID="MyList" runat="server" Width="100px"></asp:DropDownList> 
      </div> 

कोड:

 // clear vehicles list 
     MyList.Items.Clear(); 

     // add 'all' option 
     MyList.Items.Add(new ListItem("ALL", "0")); 

     // add assets 
     foreach (CustomClass item in items) 
      MyList.Items.Add(new ListItem(item.Name, item.ID.ToString())); 

कोई घटना SelectedIndexChanged के लिए ट्रिगर यह आवश्यक नहीं है के बाद से।

जब मैं पोस्टबैक के लिए बटन क्लिक करता हूं, तो चयनितता का मान DropDownList में पहले आइटम का मान बना रहता है। मैं क्या खो रहा हूँ?

नोट कृपया पोस्ट का जवाब देना और संपादन करना बंद करें। हम इसे छोड़ सकते हैं क्योंकि यह पहले ही उत्तर दिया गया है।

उत्तर

31

आप Page_Load में databinding रहे हैं, तो आप कर रहे हैं के बाद से प्रयास करें अनिवार्य रूप से चयनित इटैम को रीसेट करना भी।

आपको ब्लॉक के अंदर Page_Load में मौजूद बाध्यकारी कोड को लपेटना चाहिए।

if(!Page.IsPostBack) 
{ 

    // Your binding code here ... 

} 
+3

Dammit। मैंने उसे नोटिस नहीं किया। धन्यवाद – Bahamut

4

आपका कोड शायद पोस्टबैक के बाद भी निष्पादित हो रहा है, बॉक्स को साफ़ कर रहा है, इसलिए चयन खो रहा है और सब कुछ।

यदि ऐसा है, तो if(!Page.IsPostBack) { ... } जैसे कोड को लपेटने का प्रयास करें।

-2

हाँ, आप सूची Autopostback = सच ड्रॉप डाउन जोड़ने के लिए याद कर रहे हैं ..

अपने .aspx पेज

+0

यह हर बार किसी आइटम का चयन होने पर पोस्टबैक को मजबूर करेगा ... –

-1

हे इंडेक्स जोड़ने के लिए आवश्यक सभी इंडेक्स जोड़ने के लिए हे। आपको विशेष इंडेक्स नंबर

MyList.Items.Insert(0, "ALL"); 
+1

यह उत्तर कोई फर्क नहीं पड़ता क्योंकि यह केवल एक आइटम जोड़ता है। प्रश्न का उत्तर पहले से ही दिया गया है, धन्यवाद। – Bahamut

0

पर डालने की आवश्यकता है तो यह उत्तर सबसे आम कारण के लिए "स्पष्ट" समाधान है। हालांकि, एक और आश्चर्यजनक मुद्दा है जो इसका कारण बन सकता है! मेरी सूची मान डेटाबेस से आए थे और मूल्यों में लाइनफीड और कैरिज रिटर्न था: "\ r \ n"। ये मूल्य एक निर्दोष स्थान की तरह दिखते हैं, लेकिन वास्तव में वे नहीं हैं! मेरा समाधान इन छिपे हुए चार मानों को हटाना था। आशा करता हूँ की ये काम करेगा।

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