2011-03-12 12 views
6

मैं उन पंक्तियों को जो "आइटम नहीं मिले" ग्रिड (स्क्रीन शॉट के बाएं हाथ की ओर) में उपयोगकर्ता द्वारा चुने जाते हैं द्वारा जोड़ा जा रहा से चयनित पंक्तियाँ प्राप्त करें "आइटम चयनित" के लिए ग्रिड (स्क्रीन शॉट के दाहिने हाथ की ओर) जब भी उपयोगकर्ता "कार्ट में जोड़ें" बटन क्लिक करता है।एक DataGridView

स्क्रीन शॉट: link http://img856.imageshack.us/img856/3015/datagridview.jpg

खोज बटन खोज सेवा से पुस्तकों की सूची लाता है। कौन सा मैं itemsFoundList में प्रदर्शित DataGridView है।

private void searchButton_Click(object sender, EventArgs e) 
{ 
    itemsFoundList.Columns.Clear(); 
    string[] list = searchServiceClient.BookSearch (getBookName.Text, getAuthorName.Text); 
    itemsFoundList.Columns.Add ("Items", "Items found:"); 
    displayToGrid (itemsFoundList, list); 
} 

अब मैं cartList लिए चयनित पंक्तियों को जोड़ने का तरीका (जो एक DataGridView है) नहीं मिल रहा है।

private void addToCart_Click(object sender, EventArgs e) { 
    //I am not getting what to write here. 
} 
+0

क्या आप searchServiceClient पर नियंत्रण में हैं? या यह एक तृतीय पक्ष बनाए रखा सेवा है? –

+0

हाँ, इसकी मेरी सेवा केवल। – ivorykoder

+0

क्या यह मानना ​​सुरक्षित है कि आपके पास शायद एक बुकआईडी या कोई अन्य अद्वितीय पहचानकर्ता है जिसे आप वापस लौटने वाली जानकारी के अतिरिक्त वापस कर सकते हैं? –

उत्तर

19

आप में सबसे पहले शायद FullRowSelect करने के लिए अपने DataGridView की SelectionMode बदलने के लिए चाहता हूँ। अन्यथा उपयोगकर्ता संभावित रूप से कक्षों का चयन करेंगे और पंक्तियां नहीं होंगे और नीचे दिया गया कोड काम नहीं करेगा।

foreach (DataGridViewRow r in dataGridView1.SelectedRows) 
{ 
    //Code to add selected row to new datagrid. 
    //Important to note that dataGridView2.Rows.Add(r) will not work 
    //because each row can only belong to one data grid. You'll have 
    //to create a new Row with the same info for an exact copy 
} 

व्यक्तिगत तौर पर मैं bookid वापसी होगी एक छिपे हुए स्तंभ के रूप में इतना है कि यह समाप्त होता है:

फिर [आप चयनित सेल के साथ इसी तरह कुछ कर सकते हैं हालांकि] क्या आप निम्न के समान कोड के साथ शुरुआत करना चाहेंगे जब आप उपयोगकर्ता के कार्ट को संसाधित कर रहे हों तो उपलब्ध हो।

आप के लिए एक दूसरे को DataGridViewRow से आइटम को [इतना है कि वे केवल एक समय में एक सूची में मौजूद हो सकता] क्या आप ऐसा कर सकता है चाहता है तो।

foreach (DataGridViewRow r in dataGridView1.SelectedRows) 
{ 
    dataGridView1.Rows.Remove(r); 
    dataGridView2.Rows.Add(r); 
} 
+0

"सबसे पहले आप अपने डेटाग्रिड व्यू के चयन मोड को FullRowSelect में बदलना चाहते हैं।" - मेरा दिन बना दिया। :-) – ivorykoder

+0

हा, यह एक मजेदार छोटा टाइपो था, उम्मीद है कि यह आपके लिए काम करेगा। –