2013-12-16 2 views
5

मैं कोई ComboBox है, और वह यह है कि मैं इसे कैसे में डेटा को भरने:डिफ़ॉल्ट मूल्य डेटास्रोत

SectorCollection sectorCollection = sectorController.SearchAll(); 

comboSector.DataSource = null; 

comboSector.DataSource = sectorCollection; 
comboSector.DisplayMember = "titleSector"; 
comboSector.ValueMember = "idSector"; 

क्या मैं चाहता हूँ एक के बिना बता गया में एक पाठ की तरह, एक पूर्व डेटा सेट करने के लिए है मूल्य। "एक सेक्टर का चयन करें" की तरह। तो उपयोगकर्ता जानता है कि वह क्या चुन रहा है।

+3

यह Winform या asp.net है? – Steve

उत्तर

3

आप एक WinForm बता गया उपयोग कर रहे हैं तो आप इस

sectorCollection.Insert(0, new Sector() {idSector=0, titleSector="Select a sector"}) 

comboSector.DataSource = sectorCollection; 
comboSector.DisplayMember = "titleSector"; 
comboSector.ValueMember = "idSector"; 

आप एक नया Sector उदाहरण के लिए जोड़ के रूप में चयन संकेत जोड़ने की जरूरत है की तरह कुछ कोड होना चाहिए संग्रह और फिर संग्रह को अपने combobox में बांधें। बेशक यह एक समस्या हो सकती है यदि आप अन्य उद्देश्यों के लिए संग्रह का उपयोग कॉम्बो डिस्प्ले

+0

यह काम किया, धन्यवाद। – Jonas452

+0

+1 जो मुझे सहायक होने के लिए आवश्यक था, के पास पर्याप्त है। – ghostJago

+1

@ghostJago क्या पूरी तरह से मददगार गायब है? – Steve

4

बस के बाद डिफ़ॉल्ट के रूप में सूचकांक 0 पर एक नया आइटम सम्मिलित अपने DataBind():

comboSector.DataSource = sectorCollection; 
comboSector.DisplayMember = "titleSector"; 
comboSector.ValueMember = "idSector"; 
comboSector.DataBind(); 

comboSector.Items.Insert(0, "Select a Sector."); 

यदि यह WinForms है (यदि आप नहीं कहा) तो आप सूचकांक 0 पर sectorCollection में कोई नया आइटम जोड़ना होगा combobox को सौंपने से पहले। अन्य सभी कोड एक ही रहता है:

sectorCollection.Insert(0, new Sector() { idSector = 0, titleSector = "Select a sector." }); 
+0

+1 सही, संक्षिप्त और व्यापक रूप से उपयोग किए जाने वाले समाधान के लिए। – nestedloop

+0

लेकिन कॉम्बोबॉक्स में "डेटाबिंड" की कोई विधि नहीं है, मुझे समझ में आया कि मुझे डेटा को combobox में बांधना है ताकि मैं इसे बदल सकूं। लेकिन मैं यह कैसे कर सकता हूं? – Jonas452

+0

क्या यह Winforms है? – DGibbs

1

मुझे लगता है कि एक डमी आइटम जोड़ने के बजाय, जो हमेशा सूची के शीर्ष पर होगा, केवल चयनित इंडेक्स को सेट करें - 1 और अपना टेक्स्ट जोड़ें:

comboBox1.SelectedIndex = -1; 
comboBox1.Text = "Select an item"; 
संबंधित मुद्दे