2012-10-26 17 views
5

के साथ बनाया गया था, मेरी परियोजना में, "getArticles" नामक विधि में combobox मान आ रहे हैं। यहां विधि है:मैं कंबोबॉक्स से चयनित आइटम कैसे प्राप्त करूं जो डाटाटेबल

public void getArticles(ComboBox cb) 
{ 
    var getAll = getAllFromDB("articles", "", "articleName ASC"); 
    DataTable dt = getAll.Tables["articles"]; 
    cb.DataSource = dt; 
    cb.DisplayMember = "articleName"; 
    cb.ValueMember = "id"; 
} 

"getAllFromDB" विधि लेख तालिका से चयन कर रही है और डेटासेट लौटा रही है। अब मेरी समस्या यहाँ है। जब मैं cb.SelectedValue का उपयोग करता हूं तो मुझे आलेख नाम का आईडी मान प्राप्त हो सकता है। यह ठीक है और अच्छा है। लेकिन जब मैं cb.SelectedItem का उपयोग करता हूं तो यह "System.Data.DataRowView" दिखा रहा है।
कृपया मेरी मदद कर सकते हैं, मैं cb.selectedItem का उपयोग करने जैसे लेख का नाम कैसे प्राप्त कर सकता हूं?
दयालु संबंध है।

+0

आप 'cb.SelectedText' का उपयोग कर सकते हैं जो मुझे लगता है कि ऐसा करने का सही तरीका नहीं है। क्या आप सुनिश्चित हैं कि प्रदर्शन सदस्य सेट उचित है? यदि आपको यह त्रुटि – nawfal

+0

हबीब नहीं मिलनी चाहिए, तो क्या आपको यकीन है कि "ArticleName" नामक combobox आइटम ऑब्जेक्ट पर कोई संपत्ति है? – nawfal

उत्तर

8

लाइनों के निम्नलिखित कोड आज़माएं, हो सकता है कि यह चयनित आइटम प्राप्त करने में मदद मिलेगी।

 ComboBoxItem requiredItem = (ComboBoxItem)cboType.SelectedItem; 
     string value = requiredItem.Content.ToString(); 

संपादित करें:

क्षमा करें, ऊपर ComboBoxItem केवल .Net Framework 4.5 के मामले में काम करता है, यह System.Windows.Controls नाम स्थान में है। अपने उत्तर के लिए कोड भागों का पालन करें और

 DataTable dtable = (DataTable)comboBox1.DataSource; 
     label1.Text = dtable.Rows[comboBox1.SelectedIndex][0].ToString();//gives you article id 
     label2.Text = dtable.Rows[comboBox1.SelectedIndex][1].ToString();//gives you article name 
+0

ComboboxItem क्या है? मेरी शुरुआती स्थिति के लिए खेद है। –

+0

इसकी एक कक्षा, जो कंबोबॉक्स –

+0

में मौजूद आइटम का प्रतिनिधित्व करती है यह अच्छा है लेकिन मैं इस कक्षा का उपयोग कैसे करूं? –

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